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; } } } }
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; } } } }
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; } } } }
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; } } } }
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; } } } }