public TransientStageAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "topic":
                {
                    Topic = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "privacy_level":
                {
                    PrivacyLevel = AuditLogChange <PrivacyLevel> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
        public TransientStickerAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "description":
                {
                    Description = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "tags":
                {
                    Tags = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "format_type":
                {
                    FormatType = AuditLogChange <StickerFormatType> .Convert(change);

                    break;
                }

                case "available":
                {
                    IsAvailable = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "guild_id":
                {
                    GuildId = AuditLogChange <Snowflake> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
예제 #3
0
        public TransientThreadAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "archived":
                {
                    IsArchived = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "locked":
                {
                    IsLocked = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "auto_archive_duration":
                {
                    AutomaticArchiveDuration = AuditLogChange <TimeSpan> .Convert <int>(change, x => TimeSpan.FromMinutes(x));

                    break;
                }

                case "rate_limit_per_user":
                {
                    Slowmode = AuditLogChange <TimeSpan> .Convert <int>(change, x => TimeSpan.FromSeconds(x));

                    break;
                }

                case "type":
                {
                    Type = AuditLogChange <ChannelType> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
예제 #4
0
        public TransientRoleAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .Convert(change);

                    break;
                }

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

                    break;
                }

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

                    break;
                }

                case "hoist":
                {
                    IsHoisted = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "mentionable":
                {
                    IsMentionable = AuditLogChange <bool> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
예제 #5
0
        public TransientWebhookAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "type":
                {
                    Type = AuditLogChange <WebhookType> .Convert(change);

                    break;
                }

                case "avatar_hash":
                {
                    AvatarHash = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "channel_id":
                {
                    ChannelId = AuditLogChange <Snowflake> .Convert(change);

                    break;
                }

                case "application_id":
                {
                    ApplicationId = AuditLogChange <Snowflake?> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
예제 #6
0
        public TransientMemberAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "nick":
                {
                    Nick = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "mute":
                {
                    IsMuted = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "deaf":
                {
                    IsDeafened = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "communication_disabled_until":
                {
                    TimedOutUntil = AuditLogChange <DateTimeOffset> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
예제 #7
0
        public TransientOverwriteAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "id":
                {
                    TargetId = AuditLogChange <Snowflake> .Convert(change);

                    break;
                }

                case "type":
                {
                    TargetType = AuditLogChange <OverwriteTargetType> .Convert(change);

                    break;
                }

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

                    break;
                }

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

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
        public TransientEmojiAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
예제 #9
0
        public TransientIntegrationAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "enable_emoticons":
                {
                    EnablesEmojis = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "expire_behavior":
                {
                    ExpireBehavior = AuditLogChange <IntegrationExpirationBehavior> .Convert(change);

                    break;
                }

                case "expire_grace_period":
                {
                    ExpireGracePeriod = AuditLogChange <TimeSpan> .Convert <int>(change, x => TimeSpan.FromDays(x));

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
        public TransientInviteAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "code":
                {
                    Code = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "channel_id":
                {
                    ChannelId = AuditLogChange <Snowflake> .Convert(change);

                    break;
                }

                case "inviter_id":
                {
                    InviterId = AuditLogChange <Snowflake> .Convert(change);

                    break;
                }

                case "max_uses":
                {
                    MaxUses = AuditLogChange <int> .Convert(change);

                    break;
                }

                case "uses":
                {
                    Uses = AuditLogChange <int> .Convert(change);

                    break;
                }

                case "temporary":
                {
                    IsTemporary = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "max_age":
                {
                    MaxAge = AuditLogChange <TimeSpan> .Convert <int>(change, x => TimeSpan.FromSeconds(x));

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
예제 #11
0
        public TransientChannelAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "topic":
                {
                    Topic = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "bitrate":
                {
                    Bitrate = AuditLogChange <int> .Convert(change);

                    break;
                }

                case "user_limit":
                {
                    MemberLimit = AuditLogChange <int> .Convert(change);

                    break;
                }

                case "permission_overwrites":
                {
                    Overwrites = AuditLogChange <IReadOnlyList <IOverwrite> > .Convert(change, (client, model.TargetId.Value),
                                                                                       (OverwriteJsonModel[] x, (IClient, Snowflake)tuple) => x.ToReadOnlyList(tuple, (x, tuple) =>
                        {
                            var(client, channelId) = tuple;
                            return(new TransientOverwrite(client, channelId, x));
                        }));

                    break;
                }

                case "nsfw":
                {
                    IsNsfw = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "rate_limit_per_user":
                {
                    Slowmode = AuditLogChange <TimeSpan> .Convert <int>(change, x => TimeSpan.FromSeconds(x));

                    break;
                }

                case "type":
                {
                    Type = AuditLogChange <ChannelType> .Convert(change);

                    break;
                }

                case "rtc_region":
                {
                    Region = AuditLogChange <string> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
        public TransientGuildAuditLogChanges(IClient client, AuditLogJsonModel auditLogJsonModel, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "name":
                {
                    Name = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "description":
                {
                    Description = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "icon_hash":
                {
                    IconHash = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "splash_hash":
                {
                    SplashHash = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "discovery_splash_hash":
                {
                    DiscoverySplashHash = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "banner_hash":
                {
                    BannerHash = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "owner_id":
                {
                    OwnerId = AuditLogChange <Snowflake> .Convert(change);

                    IUser oldOwner      = null;
                    var   oldOwnerModel = Array.Find(auditLogJsonModel.Users, x => x.Id == OwnerId.OldValue.Value);
                    if (oldOwnerModel != null)
                    {
                        oldOwner = new TransientUser(client, oldOwnerModel);
                    }

                    IUser newOwner      = null;
                    var   newOwnerModel = Array.Find(auditLogJsonModel.Users, x => x.Id == OwnerId.NewValue.Value);
                    if (newOwnerModel != null)
                    {
                        newOwner = new TransientUser(client, newOwnerModel);
                    }

                    Owner = new AuditLogChange <Optional <IUser> >(Optional.FromNullable(oldOwner), Optional.FromNullable(newOwner));
                    break;
                }

                case "region":
                {
                    VoiceRegion = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "preferred_locale":
                {
                    PreferredLocale = AuditLogChange <CultureInfo> .Convert <string>(change, Discord.Internal.GetLocale);

                    break;
                }

                case "afk_channel_id":
                {
                    AfkChannelId = AuditLogChange <Snowflake?> .Convert(change);

                    break;
                }

                case "afk_timeout":
                {
                    AfkTimeout = AuditLogChange <int> .Convert(change);

                    break;
                }

                case "rules_channel_id":
                {
                    RulesChannelId = AuditLogChange <Snowflake?> .Convert(change);

                    break;
                }

                case "public_updates_channel_id":
                {
                    PublicUpdatesChannelId = AuditLogChange <Snowflake?> .Convert(change);

                    break;
                }

                case "mfa_level":
                {
                    MfaLevel = AuditLogChange <GuildMfaLevel> .Convert(change);

                    break;
                }

                case "verification_level":
                {
                    VerificationLevel = AuditLogChange <GuildVerificationLevel> .Convert(change);

                    break;
                }

                case "explicit_content_filter":
                {
                    ContentFilterLevel = AuditLogChange <GuildContentFilterLevel> .Convert(change);

                    break;
                }

                case "default_message_notifications":
                {
                    DefaultNotificationLevel = AuditLogChange <GuildNotificationLevel> .Convert(change);

                    break;
                }

                case "vanity_url_code":
                {
                    VanityUrlCode = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "prune_days":
                {
                    PruneDays = AuditLogChange <int?> .Convert(change);

                    break;
                }

                case "widget_enabled":
                {
                    IsWidgetEnabled = AuditLogChange <bool> .Convert(change);

                    break;
                }

                case "widget_channel_id":
                {
                    WidgetChannelId = AuditLogChange <Snowflake?> .Convert(change);

                    break;
                }

                case "system_channel_id":
                {
                    SystemChannelId = AuditLogChange <Snowflake?> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }
예제 #13
0
        public TransientGuildEventAuditLogChanges(IClient client, AuditLogEntryJsonModel model)
        {
            for (var i = 0; i < model.Changes.Value.Length; i++)
            {
                var change = model.Changes.Value[i];
                switch (change.Key)
                {
                case "channel_id":
                {
                    ChannelId = AuditLogChange <Snowflake> .Convert(change);

                    break;
                }

                case "name":
                {
                    Name = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "description":
                {
                    Description = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "entity_type":
                {
                    TargetType = AuditLogChange <GuildEventTargetType> .Convert(change);

                    break;
                }

                case "location":
                {
                    Location = AuditLogChange <string> .Convert(change);

                    break;
                }

                case "privacy_level":
                {
                    PrivacyLevel = AuditLogChange <PrivacyLevel> .Convert(change);

                    break;
                }

                case "status":
                {
                    Status = AuditLogChange <GuildEventStatus> .Convert(change);

                    break;
                }

                default:
                {
                    client.Logger.LogDebug("Unknown key {0} for {1}", change.Key, this);
                    break;
                }
                }
            }
        }