Exemple #1
0
 private async Task OnRoleDelete(RoleDeleteEventArgs eventArgs)
 {
     await cacheHandler.Roles.DeleteAsync(new DiscordRolePacket
     {
         Id      = eventArgs.RoleId,
         GuildId = eventArgs.GuildId
     });
 }
Exemple #2
0
        private async Task OnMessageAsync(object ch, BasicDeliverEventArgs ea)
        {
            try
            {
                var         payload = Encoding.UTF8.GetString(ea.Body);
                ShardPacket body    = JsonConvert.DeserializeObject <ShardPacket>(payload);

                Log.Trace("packet with the op-code '" + body.opcode + "' received.");

                switch (body.opcode)
                {
                case Opcode.MessageCreate:
                {
                    if (MessageCreate != null)
                    {
                        await MessageCreate(
                            body.Data.ToObject <DiscordMessagePacket>()
                            );
                    }
                }
                break;

                case Opcode.GuildCreate:
                {
                    if (GuildCreate != null)
                    {
                        var guild = body.Data.ToObject <DiscordGuildPacket>();

                        await GuildCreate(
                            guild
                            );
                    }
                }
                break;

                case Opcode.ChannelCreate:
                {
                    if (GuildCreate != null)
                    {
                        var channel = body.Data.ToObject <DiscordChannelPacket>();

                        await ChannelCreate(
                            channel
                            );
                    }
                }
                break;

                case Opcode.GuildMemberRemove:
                {
                    if (GuildMemberRemove != null)
                    {
                        var packet = body.Data.ToObject <GuildIdUserArgs>();

                        await GuildMemberRemove(
                            packet.guildId,
                            packet.user
                            );
                    }
                }
                break;

                case Opcode.GuildMemberAdd:
                {
                    DiscordGuildMemberPacket guildMember = body.Data.ToObject <DiscordGuildMemberPacket>();

                    if (GuildMemberAdd != null)
                    {
                        await GuildMemberAdd(guildMember);
                    }
                }
                break;

                case Opcode.GuildMemberUpdate:
                {
                    GuildMemberUpdateEventArgs guildMember = body.Data.ToObject <GuildMemberUpdateEventArgs>();

                    if (GuildMemberUpdate != null)
                    {
                        await GuildMemberUpdate(
                            guildMember
                            );
                    }
                }
                break;

                case Opcode.GuildRoleCreate:
                {
                    RoleEventArgs role = body.Data.ToObject <RoleEventArgs>();

                    if (GuildRoleCreate != null)
                    {
                        await GuildRoleCreate(
                            role.GuildId,
                            role.Role
                            );
                    }
                }
                break;

                case Opcode.GuildRoleDelete:
                {
                    if (GuildRoleDelete != null)
                    {
                        RoleDeleteEventArgs role = body.Data.ToObject <RoleDeleteEventArgs>();

                        await GuildRoleDelete(
                            role.GuildId,
                            role.RoleId
                            );
                    }
                }
                break;

                case Opcode.GuildRoleUpdate:
                {
                    RoleEventArgs role = body.Data.ToObject <RoleEventArgs>();

                    if (GuildRoleUpdate != null)
                    {
                        await GuildRoleUpdate(
                            role.GuildId,
                            role.Role
                            );
                    }
                }
                break;

                case Opcode.ChannelDelete:
                {
                    if (ChannelDelete != null)
                    {
                        await ChannelDelete(
                            body.Data.ToObject <DiscordChannelPacket>()
                            );
                    }
                }
                break;

                case Opcode.ChannelUpdate:
                {
                    if (ChannelUpdate != null)
                    {
                        await ChannelUpdate(
                            body.Data.ToObject <DiscordChannelPacket>()
                            );
                    }
                }
                break;

                case Opcode.GuildBanAdd:
                {
                    if (GuildBanAdd != null)
                    {
                        var packet = body.Data.ToObject <GuildIdUserArgs>();

                        await GuildBanAdd(
                            packet.guildId,
                            packet.user
                            );
                    }
                }
                break;

                case Opcode.GuildBanRemove:
                {
                    if (GuildBanRemove != null)
                    {
                        var packet = body.Data.ToObject <GuildIdUserArgs>();

                        await GuildBanRemove(
                            packet.guildId,
                            packet.user
                            );
                    }
                }
                break;

                case Opcode.GuildDelete:
                {
                    if (GuildDelete != null)
                    {
                        var packet = body.Data.ToObject <DiscordGuildUnavailablePacket>();

                        await GuildDelete(
                            packet
                            );
                    }
                }
                break;

                case Opcode.GuildEmojiUpdate:
                {
                }
                break;

                case Opcode.GuildIntegrationsUpdate:
                {
                }
                break;

                case Opcode.GuildMembersChunk:
                {
                }
                break;

                case Opcode.GuildUpdate:
                {
                    if (GuildUpdate != null)
                    {
                        await GuildUpdate(
                            body.Data.ToObject <DiscordGuildPacket>()
                            );
                    }
                }
                break;

                case Opcode.MessageDelete:
                {
                    if (MessageDelete != null)
                    {
                        await MessageDelete(
                            body.Data.ToObject <MessageDeleteArgs>()
                            );
                    }
                }
                break;

                case Opcode.MessageDeleteBulk:
                {
                }
                break;

                case Opcode.MessageUpdate:
                {
                    if (MessageUpdate != null)
                    {
                        await MessageUpdate(
                            body.Data.ToObject <DiscordMessagePacket>()
                            );
                    }
                }
                break;

                case Opcode.PresenceUpdate:
                {
                }
                break;

                case Opcode.Ready:
                {
                }
                break;

                case Opcode.Resumed:
                {
                }
                break;

                case Opcode.TypingStart:
                {
                }
                break;

                case Opcode.UserUpdate:
                {
                    if (UserUpdate != null)
                    {
                        await UserUpdate(
                            body.Data.ToObject <DiscordUserPacket>()
                            );
                    }
                }
                break;

                case Opcode.VoiceServerUpdate:
                {
                }
                break;

                case Opcode.VoiceStateUpdate:
                {
                }
                break;
                }

                channel.BasicAck(ea.DeliveryTag, false);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }