/// <inheritdoc /> internal override async Task OnLoginAsync(TokenType tokenType, string token) { API.UserJson user = await ApiClient.GetMyUserAsync(new RequestOptions { RetryMode = RetryMode.AlwaysRetry }).ConfigureAwait(false); ApiClient.CurrentUserId = user.Id; base.CurrentUser = RestSelfUser.Create(this, user); }
internal static InviteDeleteAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry) { API.AuditLogChangeJson[] changes = entry.Changes; API.AuditLogChangeJson maxAgeModel = changes.FirstOrDefault(x => x.ChangedProperty == "max_age"); API.AuditLogChangeJson codeModel = changes.FirstOrDefault(x => x.ChangedProperty == "code"); API.AuditLogChangeJson temporaryModel = changes.FirstOrDefault(x => x.ChangedProperty == "temporary"); API.AuditLogChangeJson inviterIdModel = changes.FirstOrDefault(x => x.ChangedProperty == "inviter_id"); API.AuditLogChangeJson channelIdModel = changes.FirstOrDefault(x => x.ChangedProperty == "channel_id"); API.AuditLogChangeJson usesModel = changes.FirstOrDefault(x => x.ChangedProperty == "uses"); API.AuditLogChangeJson maxUsesModel = changes.FirstOrDefault(x => x.ChangedProperty == "max_uses"); int maxAge = maxAgeModel.OldValue.ToObject<int>(discord.ApiClient.Serializer); string code = codeModel.OldValue.ToObject<string>(discord.ApiClient.Serializer); bool temporary = temporaryModel.OldValue.ToObject<bool>(discord.ApiClient.Serializer); ulong channelId = channelIdModel.OldValue.ToObject<ulong>(discord.ApiClient.Serializer); int uses = usesModel.OldValue.ToObject<int>(discord.ApiClient.Serializer); int maxUses = maxUsesModel.OldValue.ToObject<int>(discord.ApiClient.Serializer); RestUser inviter = null; if (inviterIdModel != null) { ulong inviterId = inviterIdModel.OldValue.ToObject<ulong>(discord.ApiClient.Serializer); API.UserJson inviterInfo = log.Users.FirstOrDefault(x => x.Id == inviterId); inviter = RestUser.Create(discord, inviterInfo); } return new InviteDeleteAuditLogData(maxAge, code, temporary, inviter, channelId, uses, maxUses); }
public static async Task <RestUser> GetUserAsync(BaseDiscordClient client, ulong id, RequestOptions options) { API.UserJson model = await client.ApiClient.GetUserAsync(id, options).ConfigureAwait(false); if (model != null) { return(RestUser.Create(client, model)); } return(null); }
internal static MessagePinAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry) { RestUser user = null; if (entry.TargetId.HasValue) { API.UserJson userInfo = log.Users.FirstOrDefault(x => x.Id == entry.TargetId); user = RestUser.Create(discord, userInfo); } return(new MessagePinAuditLogData(entry.Options.MessageId.Value, entry.Options.ChannelId.Value, user)); }
internal static RestAuditLogEntry Create(BaseDiscordClient discord, Model fullLog, EntryModel model) { API.UserJson userInfo = model.UserId != null?fullLog.Users.FirstOrDefault(x => x.Id == model.UserId) : null; IUser user = null; if (userInfo != null) { user = RestUser.Create(discord, userInfo); } return(new RestAuditLogEntry(discord, fullLog, model, user)); }
internal static MemberRoleAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry) { API.AuditLogChangeJson[] changes = entry.Changes; List <MemberRoleEditInfo> roleInfos = changes.SelectMany(x => x.NewValue.ToObject <API.RoleJson[]>(discord.ApiClient.Serializer), (model, role) => new { model.ChangedProperty, Role = role }) .Select(x => new MemberRoleEditInfo(x.Role.Name, x.Role.Id, x.ChangedProperty == "$add")) .ToList(); API.UserJson userInfo = log.Users.FirstOrDefault(x => x.Id == entry.TargetId); RestUser user = RestUser.Create(discord, userInfo); return(new MemberRoleAuditLogData(roleInfos.ToReadOnlyCollection(), user)); }
internal static MemberUpdateAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry) { API.AuditLogChangeJson[] changes = entry.Changes; API.AuditLogChangeJson nickModel = changes.FirstOrDefault(x => x.ChangedProperty == "nick"); API.AuditLogChangeJson deafModel = changes.FirstOrDefault(x => x.ChangedProperty == "deaf"); API.AuditLogChangeJson muteModel = changes.FirstOrDefault(x => x.ChangedProperty == "mute"); string oldNick = nickModel?.OldValue?.ToObject <string>(discord.ApiClient.Serializer), newNick = nickModel?.NewValue?.ToObject <string>(discord.ApiClient.Serializer); bool?oldDeaf = deafModel?.OldValue?.ToObject <bool>(discord.ApiClient.Serializer), newDeaf = deafModel?.NewValue?.ToObject <bool>(discord.ApiClient.Serializer); bool?oldMute = muteModel?.OldValue?.ToObject <bool>(discord.ApiClient.Serializer), newMute = muteModel?.NewValue?.ToObject <bool>(discord.ApiClient.Serializer); API.UserJson targetInfo = log.Users.FirstOrDefault(x => x.Id == entry.TargetId); RestUser user = RestUser.Create(discord, targetInfo); MemberInfo before = new MemberInfo(oldNick, oldDeaf, oldMute); MemberInfo after = new MemberInfo(newNick, newDeaf, newMute); return(new MemberUpdateAuditLogData(user, before, after)); }
internal static BanAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry) { API.UserJson userInfo = log.Users.FirstOrDefault(x => x.Id == entry.TargetId); return(new BanAuditLogData(RestUser.Create(discord, userInfo))); }
internal static GuildUpdateAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry) { API.AuditLogChangeJson[] changes = entry.Changes; API.AuditLogChangeJson afkTimeoutModel = changes.FirstOrDefault(x => x.ChangedProperty == "afk_timeout"); API.AuditLogChangeJson defaultMessageNotificationsModel = changes.FirstOrDefault(x => x.ChangedProperty == "default_message_notifications"); API.AuditLogChangeJson afkChannelModel = changes.FirstOrDefault(x => x.ChangedProperty == "afk_channel_id"); API.AuditLogChangeJson nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name"); API.AuditLogChangeJson regionIdModel = changes.FirstOrDefault(x => x.ChangedProperty == "region"); API.AuditLogChangeJson iconHashModel = changes.FirstOrDefault(x => x.ChangedProperty == "icon_hash"); API.AuditLogChangeJson verificationLevelModel = changes.FirstOrDefault(x => x.ChangedProperty == "verification_level"); API.AuditLogChangeJson ownerIdModel = changes.FirstOrDefault(x => x.ChangedProperty == "owner_id"); API.AuditLogChangeJson mfaLevelModel = changes.FirstOrDefault(x => x.ChangedProperty == "mfa_level"); API.AuditLogChangeJson contentFilterModel = changes.FirstOrDefault(x => x.ChangedProperty == "explicit_content_filter"); API.AuditLogChangeJson systemChannelIdModel = changes.FirstOrDefault(x => x.ChangedProperty == "system_channel_id"); API.AuditLogChangeJson widgetChannelIdModel = changes.FirstOrDefault(x => x.ChangedProperty == "widget_channel_id"); API.AuditLogChangeJson widgetEnabledModel = changes.FirstOrDefault(x => x.ChangedProperty == "widget_enabled"); int?oldAfkTimeout = afkTimeoutModel?.OldValue?.ToObject <int>(discord.ApiClient.Serializer), newAfkTimeout = afkTimeoutModel?.NewValue?.ToObject <int>(discord.ApiClient.Serializer); DefaultMessageNotifications?oldDefaultMessageNotifications = defaultMessageNotificationsModel?.OldValue?.ToObject <DefaultMessageNotifications>(discord.ApiClient.Serializer), newDefaultMessageNotifications = defaultMessageNotificationsModel?.NewValue?.ToObject <DefaultMessageNotifications>(discord.ApiClient.Serializer); ulong?oldAfkChannelId = afkChannelModel?.OldValue?.ToObject <ulong>(discord.ApiClient.Serializer), newAfkChannelId = afkChannelModel?.NewValue?.ToObject <ulong>(discord.ApiClient.Serializer); string oldName = nameModel?.OldValue?.ToObject <string>(discord.ApiClient.Serializer), newName = nameModel?.NewValue?.ToObject <string>(discord.ApiClient.Serializer); string oldRegionId = regionIdModel?.OldValue?.ToObject <string>(discord.ApiClient.Serializer), newRegionId = regionIdModel?.NewValue?.ToObject <string>(discord.ApiClient.Serializer); string oldIconHash = iconHashModel?.OldValue?.ToObject <string>(discord.ApiClient.Serializer), newIconHash = iconHashModel?.NewValue?.ToObject <string>(discord.ApiClient.Serializer); VerificationLevel?oldVerificationLevel = verificationLevelModel?.OldValue?.ToObject <VerificationLevel>(discord.ApiClient.Serializer), newVerificationLevel = verificationLevelModel?.NewValue?.ToObject <VerificationLevel>(discord.ApiClient.Serializer); ulong?oldOwnerId = ownerIdModel?.OldValue?.ToObject <ulong>(discord.ApiClient.Serializer), newOwnerId = ownerIdModel?.NewValue?.ToObject <ulong>(discord.ApiClient.Serializer); MfaLevel?oldMfaLevel = mfaLevelModel?.OldValue?.ToObject <MfaLevel>(discord.ApiClient.Serializer), newMfaLevel = mfaLevelModel?.NewValue?.ToObject <MfaLevel>(discord.ApiClient.Serializer); ExplicitContentFilterLevel?oldContentFilter = contentFilterModel?.OldValue?.ToObject <ExplicitContentFilterLevel>(discord.ApiClient.Serializer), newContentFilter = contentFilterModel?.NewValue?.ToObject <ExplicitContentFilterLevel>(discord.ApiClient.Serializer); ulong?oldSystemChannelId = systemChannelIdModel?.OldValue?.ToObject <ulong>(discord.ApiClient.Serializer), newSystemChannelId = systemChannelIdModel?.NewValue?.ToObject <ulong>(discord.ApiClient.Serializer); ulong?oldWidgetChannelId = widgetChannelIdModel?.OldValue?.ToObject <ulong>(discord.ApiClient.Serializer), newWidgetChannelId = widgetChannelIdModel?.NewValue?.ToObject <ulong>(discord.ApiClient.Serializer); bool?oldWidgetEnabled = widgetEnabledModel?.OldValue?.ToObject <bool>(discord.ApiClient.Serializer), newWidgetEnabled = widgetEnabledModel?.NewValue?.ToObject <bool>(discord.ApiClient.Serializer); IUser oldOwner = null; if (oldOwnerId != null) { API.UserJson oldOwnerInfo = log.Users.FirstOrDefault(x => x.Id == oldOwnerId.Value); oldOwner = RestUser.Create(discord, oldOwnerInfo); } IUser newOwner = null; if (newOwnerId != null) { API.UserJson newOwnerInfo = log.Users.FirstOrDefault(x => x.Id == newOwnerId.Value); newOwner = RestUser.Create(discord, newOwnerInfo); } GuildInfo before = new GuildInfo(oldAfkTimeout, oldDefaultMessageNotifications, oldAfkChannelId, oldName, oldRegionId, oldIconHash, oldVerificationLevel, oldOwner, oldMfaLevel, oldContentFilter, oldSystemChannelId, oldWidgetChannelId, oldWidgetEnabled); GuildInfo after = new GuildInfo(newAfkTimeout, newDefaultMessageNotifications, newAfkChannelId, newName, newRegionId, newIconHash, newVerificationLevel, newOwner, newMfaLevel, newContentFilter, newSystemChannelId, newWidgetChannelId, newWidgetEnabled); return(new GuildUpdateAuditLogData(before, after)); }
internal static MessageDeleteAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry) { API.UserJson userInfo = log.Users.FirstOrDefault(x => x.Id == entry.TargetId); return(new MessageDeleteAuditLogData(entry.Options.ChannelId.Value, entry.Options.Count.Value, RestUser.Create(discord, userInfo))); }