From 23bd574830fb01bb4c34b248cdf89bac469293a4 Mon Sep 17 00:00:00 2001 From: RogueException Date: Tue, 21 Jun 2016 01:16:54 -0300 Subject: [PATCH 1/2] Fixed WaitForGuildsAsync --- src/Discord.Net/DiscordSocketClient.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Discord.Net/DiscordSocketClient.cs b/src/Discord.Net/DiscordSocketClient.cs index 6d26614ee..cfee05de7 100644 --- a/src/Discord.Net/DiscordSocketClient.cs +++ b/src/Discord.Net/DiscordSocketClient.cs @@ -552,6 +552,10 @@ namespace Discord await _gatewayLogger.WarningAsync($"{type} referenced an unknown guild.").ConfigureAwait(false); return; } + + var unavailableGuilds = _unavailableGuilds; + if (unavailableGuilds != 0) + _unavailableGuilds = unavailableGuilds - 1; } if (data.Unavailable != true) @@ -600,6 +604,8 @@ namespace Discord await LeftGuild.RaiseAsync(guild).ConfigureAwait(false); await _gatewayLogger.InfoAsync($"Left {data.Name}").ConfigureAwait(false); } + else + _unavailableGuilds++; } else @@ -1148,7 +1154,7 @@ namespace Discord private async Task WaitForGuildsAsync(CancellationToken cancelToken) { - while ((_unavailableGuilds > 0) || (Environment.TickCount - _lastGuildAvailableTime > 2000)) + while ((_unavailableGuilds != 0) && (Environment.TickCount - _lastGuildAvailableTime < 2000)) await Task.Delay(500, cancelToken).ConfigureAwait(false); } public async Task WaitForGuildsAsync() From 4215a9d8cd00c32a33f8a2ffc30ccf5181fd5e80 Mon Sep 17 00:00:00 2001 From: RogueException Date: Tue, 21 Jun 2016 01:18:56 -0300 Subject: [PATCH 2/2] Fixed removing DMs from cache --- src/Discord.Net/DiscordSocketClient.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Discord.Net/DiscordSocketClient.cs b/src/Discord.Net/DiscordSocketClient.cs index cfee05de7..1f27d0f1b 100644 --- a/src/Discord.Net/DiscordSocketClient.cs +++ b/src/Discord.Net/DiscordSocketClient.cs @@ -677,7 +677,7 @@ namespace Discord } } else - channel = RemoveDMChannel(data.Id); + channel = RemoveDMChannel(data.Recipient.Id); if (channel != null) await ChannelDestroyed.RaiseAsync(channel).ConfigureAwait(false); else