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); }