private async Task SetupGatewayAsync() { Guard.IsNotNull(GatewayService, nameof(GatewayService)); var gatewayConfig = await MakeRefitRequest(() => GatewayService.GetGatewayConfig()); Guard.IsNotNull(gatewayConfig, nameof(GatewayService)); Gateway = new Gateway(gatewayConfig, unhandledMessageEncountered: e => LogException(ClientLogEvent.GatewayExceptionHandled, e), unknownEventEncountered: e => LogEvent(ClientLogEvent.UnknownGatewayEventEncountered, e), unknownOperationEncountered: e => LogOperation(ClientLogEvent.UnknownGatewayOperationEncountered, e), knownEventEncountered: e => LogEvent(ClientLogEvent.KnownGatewayEventEncountered, $"{e}"), unhandledOperationEncountered: e => LogOperation(ClientLogEvent.UnhandledGatewayOperationEncountered, (int)e), unhandledEventEncountered: e => LogEvent(ClientLogEvent.UnhandledGatewayEventEncountered, $"{e}"), ready: OnReady, messageCreated: OnMessageCreated, messageUpdated: OnMessageUpdated, messageDeleted: OnMessageDeleted, messageAck: OnMessageAck, resumed: _ => { }, invalidSession: _ => { }, gatewayStatusChanged: OnGatewayStateChanged, guildCreated: _ => { }, guildUpdated: _ => { }, guildDeleted: _ => { }, guildBanAdded: _ => { }, guildBanRemoved: _ => { }, channelCreated: OnChannelCreated, channelUpdated: OnChannelUpdated, channelDeleted: OnChannelDeleted, channelRecipientAdded: _ => { }, channelRecipientRemoved: _ => { }, messageReactionAdded: _ => { }, messageReactionRemoved: _ => { }, messageReactionRemovedAll: _ => { }, guildMemberAdded: _ => { }, guildMemberUpdated: _ => { }, guildMemberRemoved: _ => { }, guildMemberListUpdated: _ => { }, guildMembersChunk: _ => { }, relationshipAdded: _ => { }, relationshipUpdated: _ => { }, relationshipRemoved: _ => { }, typingStarted: _ => { }, presenceUpdated: _ => { }, userNoteUpdated: _ => { }, userSettingsUpdated: _ => { }, userGuildSettingsUpdated: _ => { }, voiceStateUpdated: OnVoiceStateUpdated, voiceServerUpdated: OnVoiceServerUpdated, streamCreate: OnStreamCreate, streamServerUpdate: OnStreamServerUpdate, sessionReplaced: _ => { }); }