| @@ -114,6 +114,11 @@ namespace Discord | |||||
| #endif | #endif | ||||
| _serializer = new JsonSerializer { ContractResolver = new DiscordContractResolver() }; | _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.SentGatewayMessage += async opCode => await _gatewayLogger.DebugAsync($"Sent {(GatewayOpCode)opCode}").ConfigureAwait(false); | ||||
| ApiClient.ReceivedGatewayEvent += ProcessMessageAsync; | ApiClient.ReceivedGatewayEvent += ProcessMessageAsync; | ||||
| @@ -62,7 +62,11 @@ namespace Discord | |||||
| var roles = ImmutableArray.CreateBuilder<Role>(value.Length + 1); | var roles = ImmutableArray.CreateBuilder<Role>(value.Length + 1); | ||||
| roles.Add(Guild.EveryoneRole); | roles.Add(Guild.EveryoneRole); | ||||
| for (int i = 0; i < value.Length; i++) | 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(); | Roles = roles.ToImmutable(); | ||||
| GuildPermissions = new GuildPermissions(Permissions.ResolveGuild(this)); | GuildPermissions = new GuildPermissions(Permissions.ResolveGuild(this)); | ||||
| } | } | ||||