@@ -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)); | ||||
} | } | ||||