/// <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;
 }
Exemple #2
0
 private async Task DiscordShardedClientOnGuildAvailable(SocketGuild arg)
 {
     if (GuildAvailable != null)
     {
         await GuildAvailable.Invoke(this, arg).ConfigureAwait(false);
     }
 }
Exemple #3
0
        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;
        }
Exemple #4
0
        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>();
        }
Exemple #5
0
        public event Func <Exception, Task> Disconnected; // Done

        internal async Task OnGuildAvailable() => await(GuildAvailable?.Invoke(GetGuild()) ?? Task.CompletedTask);