private async Task DiscordShardedClientOnGuildMemberUpdated(SocketGuildUser arg1, SocketGuildUser arg2) { if (GuildMemberUpdated != null) { await GuildMemberUpdated.Invoke(this, arg1, arg2).ConfigureAwait(false); } }
/// <summary> /// Constructs a new <see cref="BaseSocketClientAbstraction"/> around an existing <see cref="WebSocket.BaseSocketClient"/>. /// </summary> /// <param name="baseSocketClient">The value to use for <see cref="WebSocket.BaseSocketClient"/>.</param> /// <exception cref="ArgumentNullException">Throws for <paramref name="baseSocketClient"/>.</exception> protected BaseSocketClientAbstraction(BaseSocketClient baseSocketClient) : base(baseSocketClient) { baseSocketClient.ChannelCreated += x => ChannelCreated?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.ChannelDestroyed += x => ChannelDestroyed?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.ChannelUpdated += (x, y) => ChannelUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.CurrentUserUpdated += (x, y) => CurrentUserUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.GuildAvailable += x => GuildAvailable?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.GuildMembersDownloaded += x => GuildMembersDownloaded?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.GuildMemberUpdated += (x, y) => GuildMemberUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.GuildUnavailable += x => GuildUnavailable?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.GuildUpdated += (x, y) => GuildUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.JoinedGuild += x => JoinedGuild?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.LeftGuild += x => LeftGuild?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.MessageReceived += x => MessageReceived?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.MessageUpdated += (x, y, z) => MessageUpdated?.InvokeAsync(x.Abstract(), y.Abstract(), z.Abstract()) ?? Task.CompletedTask; baseSocketClient.MessageDeleted += (x, y) => MessageDeleted?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.ReactionAdded += (x, y, z) => ReactionAdded?.InvokeAsync(x.Abstract(), y.Abstract(), z.Abstract()) ?? Task.CompletedTask; baseSocketClient.ReactionRemoved += (x, y, z) => ReactionRemoved?.InvokeAsync(x.Abstract(), y.Abstract(), z.Abstract()) ?? Task.CompletedTask; baseSocketClient.ReactionsCleared += (x, y) => ReactionsCleared?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.RecipientAdded += x => RecipientAdded?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.RecipientRemoved += x => RecipientRemoved?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.RoleCreated += x => RoleCreated?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.RoleDeleted += x => RoleDeleted?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.RoleUpdated += (x, y) => RoleUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.UserBanned += (x, y) => UserBanned?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.UserIsTyping += (x, y) => UserIsTyping?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.UserJoined += x => UserJoined?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.UserLeft += x => UserLeft?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; baseSocketClient.UserUnbanned += (x, y) => UserUnbanned?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.UserUpdated += (x, y) => UserUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask; baseSocketClient.UserVoiceStateUpdated += (x, y, z) => UserVoiceStateUpdated?.InvokeAsync(x.Abstract(), y.Abstract(), z.Abstract()) ?? Task.CompletedTask; baseSocketClient.VoiceServerUpdated += x => VoiceServerUpdated?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask; }
public async Task OnGuildMemberUpdatedAsync(SocketGuildUser guildUserBefore, SocketGuildUser guildUserAfter) { var method = new GuildMemberUpdated(Client, Config); var result = await method.ProcessAsync(guildUserBefore, guildUserAfter).ConfigureAwait(false); if (result) { IncrementEventHandle("GuildMemberUpdated"); } }
public async Task OnGuildMemberUpdatedAsync(SocketGuildUser guildUserBefore, SocketGuildUser guildUserAfter) { if (!CanProcessEvent("GuildMemberUpdated")) { return; } var method = new GuildMemberUpdated(Client, Config); var result = await method.ProcessAsync(guildUserBefore, guildUserAfter).ConfigureAwait(false); if (result) { EventPostProcess("GuildMemberUpdated"); } }
public async Task RunBotAsync() { #region standard instances _client = new DiscordSocketClient(); _commands = new CommandService(); FirestoreDb _db = FirestoreDb.Create("gembot-7559e"); _settingsRepository = new SettingsRepository(_db); _settings = await _settingsRepository.GetSettingsBot(); #endregion UserRepository _userRepository = new UserRepository(_db); LogRepository _logRepository = new LogRepository(_db); List <TaskLoggerManager> listTaskLogger = new List <TaskLoggerManager>(); UserVoiceStateUpdate _UserVoiceStateUpdate = new UserVoiceStateUpdate(_logRepository, _userRepository, listTaskLogger); GuildMemberUpdated _GuildMemberUpdated = new GuildMemberUpdated(_logRepository, _userRepository, listTaskLogger); _services = new ServiceCollection() .AddSingleton(_client) .AddSingleton(_commands) .AddSingleton(_settings) .AddSingleton(_userRepository) .AddSingleton(_logRepository) .BuildServiceProvider(); _client.Log += Log; _client.UserVoiceStateUpdated += _UserVoiceStateUpdate.UserJoinedChannel; _client.GuildMemberUpdated += _GuildMemberUpdated.UserUpdatePresence; #region Starting Bot await RegisterCommandsAsync(); await _client.LoginAsync(TokenType.Bot, _settings.Token); await _client.StartAsync(); await Task.Delay(-1); #endregion }
internal async Task OnGuildMemberUpdated(SocketGuildUser before, SocketGuildUser after) => await(GuildMemberUpdated?.Invoke(before, after) ?? Task.CompletedTask);
void OnEvent(string eventname, int seq, JsonNode data) { sequence = seq; switch (eventname) { case "READY": gatewayversion = data.SelectValue <int>("v"); sessionid = data.SelectValue <string>("session_id"); OnConnected(); break; case "RESUMED": OnConnected(); break; case "INVALID_SESSION": Disconnect(1021, "Authentication failure", /*data.SelectValue<bool>("d")*/ false); break; case "CHANNEL_CREATE": ChannelCreated?.Invoke(JSON.Serializer.Read <Channel>(data)); break; case "CHANNEL_UPDATE": ChannelUpdated?.Invoke(JSON.Serializer.Read <Channel>(data)); break; case "CHANNEL_DELETE": ChannelDeleted?.Invoke(JSON.Serializer.Read <Channel>(data)); break; case "CHANNEL_PINS_UPDATED": ChannelPinUpdated?.Invoke(data.SelectValue <string>("channel_id")); break; case "MESSAGE_CREATE": MessageCreated?.Invoke(JSON.Serializer.Read <Message>(data)); break; case "MESSAGE_UPDATE": MessageUpdated?.Invoke(JSON.Serializer.Read <Message>(data)); break; case "MESSAGE_DELETE": MessageDeleted?.Invoke(data.SelectValue <string>("channel_id"), data.SelectValue <string>("id")); break; case "MESSAGE_DELETE_BULK": MessagesDeleted?.Invoke(data.SelectValue <string>("channel_id"), data.SelectValue <string[]>("ids")); break; case "GUILD_CREATE": GuildCreated?.Invoke(JSON.Serializer.Read <Guild>(data)); break; case "GUILD_UPDATE": GuildUpdated?.Invoke(JSON.Serializer.Read <Guild>(data)); break; case "GUILD_DELETE": GuildDeleted?.Invoke(JSON.Serializer.Read <UnavailableGuild>(data)); break; case "GUILD_BAN_ADD": UserBanned?.Invoke(JSON.Serializer.Read <GuildUser>(data)); break; case "GUILD_BAN_REMOVED": UserUnbanned?.Invoke(JSON.Serializer.Read <GuildUser>(data)); break; case "GUILD_EMOJIS_UPDATE": EmojisUpdated?.Invoke(data.SelectValue <string>("guild_id"), JSON.Serializer.Read <Emoji[]>(data["emojis"])); break; case "GUILD_INTEGRATIONS_UPDATE": GuildIntegrationsUpdated?.Invoke(data.SelectValue <string>("guild_id")); break; case "GUILD_MEMBER_ADD": GuildMemberAdded?.Invoke(data.SelectValue <string>("guild_id"), JSON.Serializer.Read <GuildMember>(data)); break; case "GUILD_MEMBER_REMOVE": GuildMemberRemoved?.Invoke(data.SelectValue <string>("guild_id"), JSON.Serializer.Read <User>(data)); break; case "GUILD_MEMBER_UPDATE": GuildMemberUpdated?.Invoke(data.SelectValue <string>("guild_id"), JSON.Serializer.Read <Role[]>(data["roles"]), JSON.Serializer.Read <User>(data["user"]), data.SelectValue <string>("nick")); break; case "GUILD_MEMBERS_CHUNK": GuildMembersChunk?.Invoke(data.SelectValue <string>("guild_id"), JSON.Serializer.Read <GuildMember[]>(data["members"])); break; case "GUILD_ROLE_CREATE": GuildRoleCreated?.Invoke(data.SelectValue <string>("guild_id"), JSON.Serializer.Read <Role>(data["role"])); break; case "GUILD_ROLE_UPDATE": GuildRoleUpdated?.Invoke(data.SelectValue <string>("guild_id"), JSON.Serializer.Read <Role>(data["role"])); break; case "GUILD_ROLE_DELETE": GuildRoleDeleted?.Invoke(data.SelectValue <string>("guild_id"), data.SelectValue <string>("role_id")); break; case "MESSAGE_REACTION_ADD": MessageReactionAdded?.Invoke(data.SelectValue <string>("user_id"), data.SelectValue <string>("channel_id"), data.SelectValue <string>("message_id"), JSON.Serializer.Read <Emoji>(data["emoji"])); break; case "MESSAGE_REACTION_REMOVE": MessageReactionRemoved?.Invoke(data.SelectValue <string>("user_id"), data.SelectValue <string>("channel_id"), data.SelectValue <string>("message_id"), JSON.Serializer.Read <Emoji>(data["emoji"])); break; case "MESSAGE_REACTION_REMOVE_ALL": MessageReactionRemovedAll?.Invoke(data.SelectValue <string>("channel_id"), data.SelectValue <string>("message_id")); break; case "PRESENCE_UPDATE": PresenceUpdated?.Invoke(JSON.Serializer.Read <PresenceUpdate>(data)); break; case "TYPING_START": TypingStarted?.Invoke(data.SelectValue <string>("guild_id"), data.SelectValue <string>("user_id"), data.SelectValue <int>("timestamp").ToDateTime()); break; case "USER_UPDATE": UserUpdated?.Invoke(JSON.Serializer.Read <User>(data)); break; case "VOICE_STATE_UPDATE": VoiceStateUpdated?.Invoke(JSON.Serializer.Read <VoiceState>(data)); break; case "VOICE_SERVER_UPDATE": VoiceServerUpdated?.Invoke(data.SelectValue <string>("token"), data.SelectValue <string>("guild_id"), data.SelectValue <string>("endpoint")); break; case "WEBHOOKS_UPDATE": WebhooksUpdated?.Invoke(data.SelectValue <string>("guild_id"), data.SelectValue <string>("channel_id")); break; default: Logger.Warning(this, $"'{eventname}' event not handled", data.ToString()); break; } }