Esempio n. 1
0
        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: _ => { });
        }