diff --git a/src/Discord.Net.WebSocket/BaseSocketClient.cs b/src/Discord.Net.WebSocket/BaseSocketClient.cs index 3e43fc615..2ab244aeb 100644 --- a/src/Discord.Net.WebSocket/BaseSocketClient.cs +++ b/src/Discord.Net.WebSocket/BaseSocketClient.cs @@ -45,6 +45,7 @@ namespace Discord.WebSocket public abstract Task StopAsync(); public abstract Task SetStatusAsync(UserStatus status); public abstract Task SetGameAsync(string name, string streamUrl = null, StreamType streamType = StreamType.NotStreaming); + public abstract Task SetActivityAsync(IActivity activity); public abstract Task DownloadUsersAsync(IEnumerable guilds); /// diff --git a/src/Discord.Net.WebSocket/DiscordShardedClient.cs b/src/Discord.Net.WebSocket/DiscordShardedClient.cs index f6d0b0134..e827909d9 100644 --- a/src/Discord.Net.WebSocket/DiscordShardedClient.cs +++ b/src/Discord.Net.WebSocket/DiscordShardedClient.cs @@ -239,9 +239,18 @@ namespace Discord.WebSocket await _shards[i].SetStatusAsync(status).ConfigureAwait(false); } public override async Task SetGameAsync(string name, string streamUrl = null, StreamType streamType = StreamType.NotStreaming) + { + IActivity activity = null; + if (streamUrl != null) + activity = new StreamingGame(name, streamUrl, streamType); + else if (name != null) + activity = new Game(name); + await SetActivityAsync(activity).ConfigureAwait(false); + } + public override async Task SetActivityAsync(IActivity activity) { for (int i = 0; i < _shards.Length; i++) - await _shards[i].SetGameAsync(name, streamUrl, streamType).ConfigureAwait(false); + await _shards[i].SetActivityAsync(activity).ConfigureAwait(false); } private void RegisterEvents(DiscordSocketClient client, bool isPrimary) diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index 489e02646..35a22edc4 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -328,7 +328,7 @@ namespace Discord.WebSocket } public override async Task SetGameAsync(string name, string streamUrl = null, StreamType streamType = StreamType.NotStreaming) { - if (name != null && streamUrl != null) + if (streamUrl != null) Activity = new StreamingGame(name, streamUrl, streamType); else if (name != null) Activity = new Game(name); @@ -336,7 +336,7 @@ namespace Discord.WebSocket Activity = null; await SendStatusAsync().ConfigureAwait(false); } - public async Task SetActivityAsync(IActivity activity) + public override async Task SetActivityAsync(IActivity activity) { Activity = activity; await SendStatusAsync().ConfigureAwait(false);