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 EmojiChanges(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; } default: { client.Log(LogMessageSeverity.Error, $"Unknown change key for {nameof(WebhookChanges)}: '{change.Key}'."); break; } } } }
internal MemberChanges(RestDiscordClient client, AuditLogEntryModel model) { for (var i = 0; i < model.Changes.Length; i++) { var change = model.Changes[i]; switch (change.Key) { case "nick": { Nick = AuditLogChange <string> .SingleConvert(change, client.Serializer); break; } case "deaf": { IsDeafened = AuditLogChange <bool> .SingleConvert(change, client.Serializer); break; } case "mute": { IsMuted = AuditLogChange <bool> .SingleConvert(change, client.Serializer); break; } default: { client.Log(LogMessageSeverity.Error, $"Unknown change key for {nameof(MemberChanges)}: '{change.Key}'."); break; } } } }
internal ChannelChanges(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 "topic": { Topic = AuditLogChange <string> .SingleConvert(change, client.Serializer); break; } case "bitrate": { Bitrate = AuditLogChange <int> .SingleConvert(change, client.Serializer); break; } case "permission_overwrites": { var overwritesBefore = Optional <IReadOnlyList <RestOverwrite> > .Empty; if (change.OldValue.HasValue) { var models = client.Serializer.ToObject <OverwriteModel[]>(change.OldValue.Value); overwritesBefore = new Optional <IReadOnlyList <RestOverwrite> >( models.ToReadOnlyList((client, model), (x, tuple) => { var(client, model) = tuple; return(new RestOverwrite(client, model.TargetId.Value, x)); })); } var overwritesAfter = Optional <IReadOnlyList <RestOverwrite> > .Empty; if (change.NewValue.HasValue) { var models = client.Serializer.ToObject <OverwriteModel[]>(change.NewValue.Value); overwritesAfter = new Optional <IReadOnlyList <RestOverwrite> >( models.ToReadOnlyList((client, model), (x, tuple) => { var(client, model) = tuple; return(new RestOverwrite(client, model.TargetId.Value, x)); })); } Overwrites = new AuditLogChange <IReadOnlyList <RestOverwrite> >(overwritesBefore, overwritesAfter); break; } case "nsfw": { IsNsfw = AuditLogChange <bool> .SingleConvert(change, client.Serializer); break; } case "rate_limit_per_user": { Slowmode = AuditLogChange <int> .SingleConvert(change, client.Serializer); break; } case "type": { Type = AuditLogChange <AuditLogChannelType> .SingleConvert(change, client.Serializer); break; } default: { client.Log(LogMessageSeverity.Error, $"Unknown change key for {nameof(ChannelChanges)}: '{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; } } } }