From c0db4bbfa392872d76618d3fbe26f442b023b406 Mon Sep 17 00:00:00 2001 From: RogueException Date: Thu, 25 Aug 2016 05:56:01 -0300 Subject: [PATCH] Add null checks to DiscordSocketClient's RemoveXXX functions --- .../WebSocket/DiscordSocketClient.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Discord.Net/WebSocket/DiscordSocketClient.cs b/src/Discord.Net/WebSocket/DiscordSocketClient.cs index d9dbb1af5..0d4dc8f23 100644 --- a/src/Discord.Net/WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net/WebSocket/DiscordSocketClient.cs @@ -359,10 +359,13 @@ namespace Discord.WebSocket internal SocketGuild RemoveGuild(ulong id) { var guild = DataStore.RemoveGuild(id); - foreach (var channel in guild.Channels) - guild.RemoveChannel(channel.Id); - foreach (var user in guild.Members) - guild.RemoveUser(user.Id); + if (guild != null) + { + foreach (var channel in guild.Channels) + guild.RemoveChannel(channel.Id); + foreach (var user in guild.Members) + guild.RemoveUser(user.Id); + } return guild; } @@ -401,8 +404,11 @@ namespace Discord.WebSocket internal ISocketChannel RemovePrivateChannel(ulong id) { var channel = DataStore.RemoveChannel(id) as ISocketPrivateChannel; - foreach (var recipient in channel.Recipients) - recipient.User.RemoveRef(this); + if (channel != null) + { + foreach (var recipient in channel.Recipients) + recipient.User.RemoveRef(this); + } return channel; }