From f3f4ba7d6607224ca4f5a2e1586367362446065d Mon Sep 17 00:00:00 2001 From: RogueException Date: Sun, 12 Jun 2016 13:50:36 -0300 Subject: [PATCH] Fixed handling of invalid roles --- src/Discord.Net/DiscordSocketClient.cs | 5 +++++ src/Discord.Net/Entities/Users/GuildUser.cs | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Discord.Net/DiscordSocketClient.cs b/src/Discord.Net/DiscordSocketClient.cs index c08ce6f89..d2e3fa6cc 100644 --- a/src/Discord.Net/DiscordSocketClient.cs +++ b/src/Discord.Net/DiscordSocketClient.cs @@ -114,6 +114,11 @@ namespace Discord #endif _serializer = new JsonSerializer { ContractResolver = new DiscordContractResolver() }; + _serializer.Error += (s, e) => + { + _gatewayLogger.WarningAsync(e.ErrorContext.Error).GetAwaiter().GetResult(); + e.ErrorContext.Handled = true; + }; ApiClient.SentGatewayMessage += async opCode => await _gatewayLogger.DebugAsync($"Sent {(GatewayOpCode)opCode}").ConfigureAwait(false); ApiClient.ReceivedGatewayEvent += ProcessMessageAsync; diff --git a/src/Discord.Net/Entities/Users/GuildUser.cs b/src/Discord.Net/Entities/Users/GuildUser.cs index 0eea42a39..0ea00639d 100644 --- a/src/Discord.Net/Entities/Users/GuildUser.cs +++ b/src/Discord.Net/Entities/Users/GuildUser.cs @@ -62,7 +62,11 @@ namespace Discord var roles = ImmutableArray.CreateBuilder(value.Length + 1); roles.Add(Guild.EveryoneRole); for (int i = 0; i < value.Length; i++) - roles.Add(Guild.GetRole(value[i])); + { + var role = Guild.GetRole(value[i]); + if (role != null) + roles.Add(role); + } Roles = roles.ToImmutable(); GuildPermissions = new GuildPermissions(Permissions.ResolveGuild(this)); }