/// <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; }
private async Task DiscordShardedClientOnGuildAvailable(SocketGuild arg) { if (GuildAvailable != null) { await GuildAvailable.Invoke(this, arg).ConfigureAwait(false); } }
public Bot(DiscordConfiguration discordConfiguration) { BotInfo = BotInfo.LoadFromFile("BotInfo.json"); #if DEBUG BotInfo.VersaoRevisao++; BotInfo.SaveToFile("BotInfo.json"); #endif Cliente = new DiscordClient(discordConfiguration); Cliente.Ready += Ready.Event; Cliente.GuildAvailable += (c, e) => GuildAvailable.Event(c, e, BotInfo); Cliente.ClientErrored += ClientErrored.Event; }
public void ModuloComando(CommandsNextConfiguration ccfg) { this.CommandsNext = Client.UseCommandsNext(ccfg); this.CommandsNext.CommandExecuted += CommandExecuted.Event; this.CommandsNext.CommandErrored += CommandErrored.EventAsync; this.Client.Ready += Ready.Event; var botInfo = (BotInfo)CommandsNext.Services.GetService(typeof(BotInfo)); this.Client.GuildAvailable += (c, e) => GuildAvailable.Event(c, e, botInfo); this.Client.GuildMemberAdded += (c, e) => GuildMemberAdded.Event(c, e, botInfo); this.Client.GuildMemberRemoved += (c, e) => GuildMemberRemoved.Event(c, e, botInfo); this.Client.ClientErrored += ClientErrored.Event; this.Client.UseInteractivity(new InteractivityConfiguration { Timeout = TimeSpan.FromSeconds(30), PollBehaviour = PollBehaviour.KeepEmojis, PaginationBehaviour = PaginationBehaviour.Ignore, PaginationDeletion = PaginationDeletion.KeepEmojis, }); this.CommandsNext.SetHelpFormatter <IComandoAjuda>(); this.CommandsNext.RegisterCommands <ComandoAjuda>(); this.CommandsNext.RegisterCommands <ComandoStatus>(); this.CommandsNext.RegisterCommands <ComandoAdministrativo>(); this.CommandsNext.RegisterCommands <ComandoExplorar>(); this.CommandsNext.RegisterCommands <ComandoMochila>(); this.CommandsNext.RegisterCommands <ComandoEquipamentos>(); this.CommandsNext.RegisterCommands <ComandoEquipar>(); this.CommandsNext.RegisterCommands <ComandoDesequipar>(); this.CommandsNext.RegisterCommands <ComandoExaminar>(); this.CommandsNext.RegisterCommands <ComandoBot>(); this.CommandsNext.RegisterCommands <ComandoRank>(); this.CommandsNext.RegisterCommands <ComandoPrefixo>(); this.CommandsNext.RegisterCommands <ComandoPapear>(); this.CommandsNext.RegisterCommands <ComandoHabilidade>(); this.CommandsNext.RegisterCommands <ComandoSaquear>(); }
public event Func <Exception, Task> Disconnected; // Done internal async Task OnGuildAvailable() => await(GuildAvailable?.Invoke(GetGuild()) ?? Task.CompletedTask);