diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs
index 8567f3f5c..4bb076ba1 100644
--- a/src/Discord.Net/DiscordClient.cs
+++ b/src/Discord.Net/DiscordClient.cs
@@ -324,8 +324,8 @@ namespace Discord
public void SetStatus(UserStatus status)
{
if (status == null) throw new ArgumentNullException(nameof(status));
- if (status != UserStatus.Online && status != UserStatus.Idle && status != UserStatus.DoNotDisturb)
- throw new ArgumentException($"Invalid status, must be {UserStatus.Online}, {UserStatus.Idle} or {UserStatus.DoNotDisturb}", nameof(status));
+ if (status != UserStatus.Online && status != UserStatus.Idle && status != UserStatus.DoNotDisturb && status != UserStatus.Invisible)
+ throw new ArgumentException($"Invalid status, must be {UserStatus.Online}, {UserStatus.Idle}, {UserStatus.DoNotDisturb} or {UserStatus.Invisible}", nameof(status));
Status = status;
SendStatus();
diff --git a/src/Discord.Net/Enums/UserStatus.cs b/src/Discord.Net/Enums/UserStatus.cs
index 1a34a4504..c4cd40176 100644
--- a/src/Discord.Net/Enums/UserStatus.cs
+++ b/src/Discord.Net/Enums/UserStatus.cs
@@ -10,6 +10,8 @@
public static UserStatus Offline { get; } = new UserStatus("offline");
/// User is busy.
public static UserStatus DoNotDisturb { get; } = new UserStatus("dnd");
+ /// User is invisible.
+ public static UserStatus Invisible { get; } = new UserStatus("invisible");
private UserStatus(string value)
: base(value) { }
@@ -28,6 +30,8 @@
return Offline;
case "dnd":
return DoNotDisturb;
+ case "invisible":
+ return Invisible;
default:
return new UserStatus(value);
}