Exemplo n.º 1
0
        internal RestMemberRolesUpdatedAuditLog(RestDiscordClient client, AuditLogModel log, AuditLogEntryModel entry) : base(client, log, entry)
        {
            for (var i = 0; i < entry.Changes.Length; i++)
            {
                var change = entry.Changes[i];
                switch (change.Key)
                {
                case "$add":
                {
                    RolesAdded = AuditLogChange <IReadOnlyList <Role> > .DoubleConvert <RoleModel[]>(
                        change, client.Serializer, x => x.ToReadOnlyList(y => new Role(y))).NewValue;

                    break;
                }

                case "$remove":
                {
                    RolesRemoved = AuditLogChange <IReadOnlyList <Role> > .DoubleConvert <RoleModel[]>(
                        change, client.Serializer, x => x.ToReadOnlyList(y => new Role(y))).NewValue;

                    break;
                }

                default:
                {
                    client.Log(LogMessageSeverity.Error, $"Unknown change key for {nameof(RestMemberRolesUpdatedAuditLog)}: '{change.Key}'.");
                    break;
                }
                }
            }
        }
Exemplo n.º 2
0
        internal RoleChanges(RestDiscordClient client, AuditLogEntryModel model)
        {
            for (var i = 0; i < model.Changes.Length; i++)
            {
                var change = model.Changes[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "permissions":
                {
                    Permissions = AuditLogChange <GuildPermissions> .DoubleConvert <ulong>(change, client.Serializer, x => x);

                    break;
                }

                case "color":
                {
                    Color = AuditLogChange <Color?> .DoubleConvert <int>(change, client.Serializer, x => x == 0
                                                                         ?(int?)null
                                                                         : x);

                    break;
                }

                case "hoist":
                {
                    IsHoisted = AuditLogChange <bool> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "mentionable":
                {
                    IsMentionable = AuditLogChange <bool> .SingleConvert(change, client.Serializer);

                    break;
                }

                default:
                {
                    client.Log(LogMessageSeverity.Error, $"Unknown change key for {nameof(RoleChanges)}: '{change.Key}'.");
                    break;
                }
                }
            }
        }
Exemplo n.º 3
0
        internal WebhookChanges(RestDiscordClient client, AuditLogEntryModel model)
        {
            for (var i = 0; i < model.Changes.Length; i++)
            {
                var change = model.Changes[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "type":
                {
                    Type = AuditLogChange <WebhookType> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "avatar_hash":
                {
                    AvatarHash = AuditLogChange <string> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "channel_id":
                {
                    ChannelId = AuditLogChange <Snowflake> .DoubleConvert <ulong>(change, client.Serializer, x => x);

                    break;
                }

                default:
                {
                    client.Log(LogMessageSeverity.Error, $"Unknown change key for {nameof(WebhookChanges)}: '{change.Key}'.");
                    break;
                }
                }
            }
        }
Exemplo n.º 4
0
        internal OverwriteChanges(RestDiscordClient client, AuditLogEntryModel model)
        {
            for (var i = 0; i < model.Changes.Length; i++)
            {
                var change = model.Changes[i];
                switch (change.Key)
                {
                case "id":
                {
                    TargetId = AuditLogChange <Snowflake> .DoubleConvert <ulong>(change, client.Serializer, x => x);

                    break;
                }

                case "allow":
                {
                    Allowed = AuditLogChange <ChannelPermissions> .DoubleConvert <ulong>(change, client.Serializer, x => x);

                    break;
                }

                case "deny":
                {
                    Denied = AuditLogChange <ChannelPermissions> .DoubleConvert <ulong>(change, client.Serializer, x => x);

                    break;
                }

                case "type":
                {
                    TargetType = AuditLogChange <OverwriteTargetType> .SingleConvert(change, client.Serializer);

                    break;
                }

                default:
                {
                    client.Log(LogMessageSeverity.Error, $"Unknown change key for {nameof(OverwriteChanges)}: '{change.Key}'.");
                    break;
                }
                }
            }
        }
Exemplo n.º 5
0
        internal GuildChanges(RestDiscordClient client, AuditLogModel log, AuditLogEntryModel entry)
        {
            for (var i = 0; i < entry.Changes.Length; i++)
            {
                var change = entry.Changes[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "icon_hash":
                {
                    IconHash = AuditLogChange <string> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "splash_hash":
                {
                    SplashHash = AuditLogChange <string> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "owner_id":
                {
                    OwnerId = AuditLogChange <Snowflake> .DoubleConvert <ulong>(change, client.Serializer, x => x);

                    var ownerBeforeModel = Array.Find(log.Users, x => x.Id == OwnerId.OldValue.Value);
                    var ownerAfterModel  = Array.Find(log.Users, x => x.Id == OwnerId.NewValue.Value);
                    Owner = new AuditLogChange <SnowflakeOptional <RestUser> >(
                        ownerBeforeModel != null
                                ? new SnowflakeOptional <RestUser>(new RestUser(client, ownerBeforeModel))
                                : new SnowflakeOptional <RestUser>(OwnerId.OldValue.Value),
                        ownerAfterModel != null
                                ? new SnowflakeOptional <RestUser>(new RestUser(client, ownerAfterModel))
                                : new SnowflakeOptional <RestUser>(OwnerId.NewValue.Value));
                    break;
                }

                case "region":
                {
                    VoiceRegionId = AuditLogChange <string> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "afk_channel_id":
                {
                    AfkChannelId = AuditLogChange <Snowflake?> .DoubleConvert <ulong?>(change, client.Serializer, x => x);

                    break;
                }

                case "afk_timeout":
                {
                    AfkTimeout = AuditLogChange <int> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "mfa_level":
                {
                    MfaLevel = AuditLogChange <MfaLevel> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "verification_level":
                {
                    VerificationLevel = AuditLogChange <VerificationLevel> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "explicit_content_filter":
                {
                    ContentFilterLevel = AuditLogChange <ContentFilterLevel> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "default_message_notifications":
                {
                    DefaultNotificationLevel = AuditLogChange <DefaultNotificationLevel> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "vanity_url_code":
                {
                    VanityUrlCode = AuditLogChange <string> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "widget_enabled":
                {
                    IsWidgetEnabled = AuditLogChange <bool> .SingleConvert(change, client.Serializer);

                    break;
                }

                case "widget_channel_id":
                {
                    WidgetChannelId = AuditLogChange <Snowflake?> .DoubleConvert <ulong?>(change, client.Serializer, x => x);

                    break;
                }

                case "system_channel_id":
                {
                    SystemChannelId = AuditLogChange <Snowflake?> .DoubleConvert <ulong?>(change, client.Serializer, x => x);

                    break;
                }

                default:
                {
                    client.Log(LogMessageSeverity.Error, $"Unknown change key for {nameof(GuildChanges)}: '{change.Key}'.");
                    break;
                }
                }
            }
        }