diff --git a/README.md b/README.md
index bd0ef20c7..7dc8cd788 100644
--- a/README.md
+++ b/README.md
@@ -16,13 +16,9 @@ Our stable builds available from NuGet through the Discord.Net metapackage:
The individual components may also be installed from NuGet:
- [Discord.Net.Commands](https://www.nuget.org/packages/Discord.Net.Commands/)
- [Discord.Net.Rest](https://www.nuget.org/packages/Discord.Net.Rest/)
-- [Discord.Net.Rpc](https://www.nuget.org/packages/Discord.Net.Rpc/)
- [Discord.Net.WebSocket](https://www.nuget.org/packages/Discord.Net.WebSocket/)
- [Discord.Net.Webhook](https://www.nuget.org/packages/Discord.Net.Webhook/)
-The following provider is available for platforms not supporting .NET Standard 1.3:
-- [Discord.Net.Providers.WS4Net](https://www.nuget.org/packages/Discord.Net.Providers.WS4Net/)
-
### Unstable (MyGet)
Nightly builds are available through our MyGet feed (`https://www.myget.org/F/discord-net/api/v3/index.json`).
@@ -41,5 +37,4 @@ The .NET Core workload must be selected during Visual Studio installation.
## Known Issues
### WebSockets (Win7 and earlier)
-.NET Core 1.1 does not support WebSockets on Win7 and earlier. It's recommended to use the Discord.Net.Providers.WS4Net package until this is resolved.
-Track the issue [here](https://github.com/dotnet/corefx/issues/9503).
+.NET Core 1.1 does not support WebSockets on Win7 and earlier. This issue has been fixed since the release of .NET Core 2.1. It is recommended to target .NET Core 2.1 or above for your project if you wish to run your bot on legacy platforms; alternatively, you may choose to install the [Discord.Net.Providers.WS4Net](https://www.nuget.org/packages/Discord.Net.Providers.WS4Net/) package.
diff --git a/src/Discord.Net.Commands/Attributes/CommandAttribute.cs b/src/Discord.Net.Commands/Attributes/CommandAttribute.cs
index 6cc46a792..372c9c2e9 100644
--- a/src/Discord.Net.Commands/Attributes/CommandAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/CommandAttribute.cs
@@ -14,7 +14,7 @@ namespace Discord.Commands
/// Specifies the of the command. This affects how the command is executed.
///
public RunMode RunMode { get; set; } = RunMode.Default;
- public bool? IgnoreExtraArgs { get; set; }
+ public bool? IgnoreExtraArgs { get; }
///
public CommandAttribute()
@@ -30,5 +30,10 @@ namespace Discord.Commands
{
Text = text;
}
+ public CommandAttribute(string text, bool ignoreExtraArgs)
+ {
+ Text = text;
+ IgnoreExtraArgs = ignoreExtraArgs;
+ }
}
}
diff --git a/src/Discord.Net.Rest/API/Common/AuditLogOptions.cs b/src/Discord.Net.Rest/API/Common/AuditLogOptions.cs
index 65b401cce..24141d90c 100644
--- a/src/Discord.Net.Rest/API/Common/AuditLogOptions.cs
+++ b/src/Discord.Net.Rest/API/Common/AuditLogOptions.cs
@@ -20,7 +20,7 @@ namespace Discord.API
[JsonProperty("role_name")]
public string OverwriteRoleName { get; set; }
[JsonProperty("type")]
- public string OverwriteType { get; set; }
+ public PermissionTarget OverwriteType { get; set; }
[JsonProperty("id")]
public ulong? OverwriteTargetId { get; set; }
}
diff --git a/src/Discord.Net.Rest/DiscordRestApiClient.cs b/src/Discord.Net.Rest/DiscordRestApiClient.cs
index 93047cbc1..64d3ea210 100644
--- a/src/Discord.Net.Rest/DiscordRestApiClient.cs
+++ b/src/Discord.Net.Rest/DiscordRestApiClient.cs
@@ -43,10 +43,12 @@ namespace Discord.API
public TokenType AuthTokenType { get; private set; }
internal string AuthToken { get; private set; }
internal IRestClient RestClient { get; private set; }
- internal ulong? CurrentUserId { get; set;}
+ internal ulong? CurrentUserId { get; set; }
+
+ internal JsonSerializer Serializer => _serializer;
/// Unknown OAuth token type.
- public DiscordRestApiClient(RestClientProvider restClientProvider, string userAgent, RetryMode defaultRetryMode = RetryMode.AlwaysRetry,
+ public DiscordRestApiClient(RestClientProvider restClientProvider, string userAgent, RetryMode defaultRetryMode = RetryMode.AlwaysRetry,
JsonSerializer serializer = null)
{
_restClientProvider = restClientProvider;
@@ -418,7 +420,7 @@ namespace Discord.API
var ids = new BucketIds(guildId: guildId);
await SendAsync("DELETE", () => $"guilds/{guildId}/members/{userId}/roles/{roleId}", ids, options: options).ConfigureAwait(false);
}
-
+
//Channel Messages
public async Task GetChannelMessageAsync(ulong channelId, ulong messageId, RequestOptions options = null)
{
@@ -497,7 +499,7 @@ namespace Discord.API
if (args.Content?.Length > DiscordConfig.MaxMessageSize)
throw new ArgumentOutOfRangeException($"Message content is too long, length must be less or equal to {DiscordConfig.MaxMessageSize}.", nameof(args.Content));
options = RequestOptions.CreateOrClone(options);
-
+
return await SendJsonAsync("POST", () => $"webhooks/{webhookId}/{AuthToken}?wait=true", args, new BucketIds(), clientBucket: ClientBucketType.SendEdit, options: options).ConfigureAwait(false);
}
/// Message content is too long, length must be less or equal to .
@@ -749,7 +751,7 @@ namespace Discord.API
Preconditions.NotNullOrWhitespace(args.Name, nameof(args.Name));
Preconditions.NotNullOrWhitespace(args.RegionId, nameof(args.RegionId));
options = RequestOptions.CreateOrClone(options);
-
+
return await SendJsonAsync("POST", () => "guilds", args, new BucketIds(), options: options).ConfigureAwait(false);
}
public async Task DeleteGuildAsync(ulong guildId, RequestOptions options = null)
@@ -976,7 +978,7 @@ namespace Discord.API
{
Preconditions.NotNullOrEmpty(inviteId, nameof(inviteId));
options = RequestOptions.CreateOrClone(options);
-
+
return await SendAsync("DELETE", () => $"invites/{inviteId}", new BucketIds(), options: options).ConfigureAwait(false);
}
@@ -1175,7 +1177,7 @@ namespace Discord.API
int limit = args.Limit.GetValueOrDefault(int.MaxValue);
ulong afterGuildId = args.AfterGuildId.GetValueOrDefault(0);
-
+
return await SendAsync>("GET", () => $"users/@me/guilds?limit={limit}&after={afterGuildId}", new BucketIds(), options: options).ConfigureAwait(false);
}
public async Task GetMyApplicationAsync(RequestOptions options = null)
@@ -1275,7 +1277,7 @@ namespace Discord.API
Preconditions.NotNull(args, nameof(args));
Preconditions.NotNullOrEmpty(args.Name, nameof(args.Name));
options = RequestOptions.CreateOrClone(options);
-
+
if (AuthTokenType == TokenType.Webhook)
return await SendJsonAsync("PATCH", () => $"webhooks/{webhookId}/{AuthToken}", args, new BucketIds(), options: options).ConfigureAwait(false);
else
@@ -1406,7 +1408,7 @@ namespace Discord.API
int argId = int.Parse(format.Substring(leftIndex + 1, rightIndex - leftIndex - 1));
string fieldName = GetFieldName(methodArgs[argId + 1]);
int? mappedId;
-
+
mappedId = BucketIds.GetIndex(fieldName);
if(!mappedId.HasValue && rightIndex != endIndex && format.Length > rightIndex + 1 && format[rightIndex + 1] == '/') //Ignore the next slash
rightIndex++;
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelCreateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelCreateAuditLogData.cs
index ae081b1cc..51a19a0de 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelCreateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelCreateAuditLogData.cs
@@ -28,18 +28,16 @@ namespace Discord.Rest
var typeModel = changes.FirstOrDefault(x => x.ChangedProperty == "type");
var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name");
- var type = typeModel.NewValue.ToObject();
- var name = nameModel.NewValue.ToObject();
+ var type = typeModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var name = nameModel.NewValue.ToObject(discord.ApiClient.Serializer);
foreach (var overwrite in overwritesModel.NewValue)
{
var deny = overwrite.Value("deny");
- var _type = overwrite.Value("type");
+ var permType = overwrite.Value("type");
var id = overwrite.Value("id");
var allow = overwrite.Value("allow");
- PermissionTarget permType = _type == "member" ? PermissionTarget.User : PermissionTarget.Role;
-
overwrites.Add(new Overwrite(id, permType, new OverwritePermissions(allow, deny)));
}
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelDeleteAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelDeleteAuditLogData.cs
index ea03f4aef..d09b658cf 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelDeleteAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelDeleteAuditLogData.cs
@@ -27,11 +27,11 @@ namespace Discord.Rest
var typeModel = changes.FirstOrDefault(x => x.ChangedProperty == "type");
var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name");
- var overwrites = overwritesModel.OldValue.ToObject()
+ var overwrites = overwritesModel.OldValue.ToObject(discord.ApiClient.Serializer)
.Select(x => new Overwrite(x.TargetId, x.TargetType, new OverwritePermissions(x.Allow, x.Deny)))
.ToList();
- var type = typeModel.OldValue.ToObject();
- var name = nameModel.OldValue.ToObject();
+ var type = typeModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var name = nameModel.OldValue.ToObject(discord.ApiClient.Serializer);
var id = entry.TargetId.Value;
return new ChannelDeleteAuditLogData(id, name, type, overwrites.ToReadOnlyCollection());
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelUpdateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelUpdateAuditLogData.cs
index c9e0e9d8b..f37404906 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelUpdateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/ChannelUpdateAuditLogData.cs
@@ -26,14 +26,14 @@ namespace Discord.Rest
var bitrateModel = changes.FirstOrDefault(x => x.ChangedProperty == "bitrate");
var userLimitModel = changes.FirstOrDefault(x => x.ChangedProperty == "user_limit");
- string oldName = nameModel?.OldValue?.ToObject(),
- newName = nameModel?.NewValue?.ToObject();
- string oldTopic = topicModel?.OldValue?.ToObject(),
- newTopic = topicModel?.NewValue?.ToObject();
- int? oldBitrate = bitrateModel?.OldValue?.ToObject(),
- newBitrate = bitrateModel?.NewValue?.ToObject();
- int? oldLimit = userLimitModel?.OldValue?.ToObject(),
- newLimit = userLimitModel?.NewValue?.ToObject();
+ string oldName = nameModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newName = nameModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ string oldTopic = topicModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newTopic = topicModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ int? oldBitrate = bitrateModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newBitrate = bitrateModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ int? oldLimit = userLimitModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newLimit = userLimitModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
var before = new ChannelInfo(oldName, oldTopic, oldBitrate, oldLimit);
var after = new ChannelInfo(newName, newTopic, newBitrate, newLimit);
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteCreateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteCreateAuditLogData.cs
index ac41d7f58..92e92574f 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteCreateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteCreateAuditLogData.cs
@@ -20,7 +20,7 @@ namespace Discord.Rest
{
var change = entry.Changes.FirstOrDefault(x => x.ChangedProperty == "name");
- var emoteName = change.NewValue?.ToObject();
+ var emoteName = change.NewValue?.ToObject(discord.ApiClient.Serializer);
return new EmoteCreateAuditLogData(entry.TargetId.Value, emoteName);
}
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteDeleteAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteDeleteAuditLogData.cs
index b76192d1d..fd307d5a9 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteDeleteAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteDeleteAuditLogData.cs
@@ -20,7 +20,7 @@ namespace Discord.Rest
{
var change = entry.Changes.FirstOrDefault(x => x.ChangedProperty == "name");
- var emoteName = change.OldValue?.ToObject();
+ var emoteName = change.OldValue?.ToObject(discord.ApiClient.Serializer);
return new EmoteDeleteAuditLogData(entry.TargetId.Value, emoteName);
}
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteUpdateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteUpdateAuditLogData.cs
index d6474e7b2..96e791d81 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteUpdateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/EmoteUpdateAuditLogData.cs
@@ -21,8 +21,8 @@ namespace Discord.Rest
{
var change = entry.Changes.FirstOrDefault(x => x.ChangedProperty == "name");
- var newName = change.NewValue?.ToObject();
- var oldName = change.OldValue?.ToObject();
+ var newName = change.NewValue?.ToObject(discord.ApiClient.Serializer);
+ var oldName = change.OldValue?.ToObject(discord.ApiClient.Serializer);
return new EmoteUpdateAuditLogData(entry.TargetId.Value, oldName, newName);
}
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/GuildUpdateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/GuildUpdateAuditLogData.cs
index 012919727..16f027a7d 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/GuildUpdateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/GuildUpdateAuditLogData.cs
@@ -31,26 +31,26 @@ namespace Discord.Rest
var mfaLevelModel = changes.FirstOrDefault(x => x.ChangedProperty == "afk_timeout");
var contentFilterModel = changes.FirstOrDefault(x => x.ChangedProperty == "afk_timeout");
- int? oldAfkTimeout = afkTimeoutModel?.OldValue?.ToObject(),
- newAfkTimeout = afkTimeoutModel?.NewValue?.ToObject();
- DefaultMessageNotifications? oldDefaultMessageNotifications = defaultMessageNotificationsModel?.OldValue?.ToObject(),
- newDefaultMessageNotifications = defaultMessageNotificationsModel?.NewValue?.ToObject();
- ulong? oldAfkChannelId = afkChannelModel?.OldValue?.ToObject(),
- newAfkChannelId = afkChannelModel?.NewValue?.ToObject();
- string oldName = nameModel?.OldValue?.ToObject(),
- newName = nameModel?.NewValue?.ToObject();
- string oldRegionId = regionIdModel?.OldValue?.ToObject(),
- newRegionId = regionIdModel?.NewValue?.ToObject();
- string oldIconHash = iconHashModel?.OldValue?.ToObject(),
- newIconHash = iconHashModel?.NewValue?.ToObject();
- VerificationLevel? oldVerificationLevel = verificationLevelModel?.OldValue?.ToObject(),
- newVerificationLevel = verificationLevelModel?.NewValue?.ToObject();
- ulong? oldOwnerId = ownerIdModel?.OldValue?.ToObject(),
- newOwnerId = ownerIdModel?.NewValue?.ToObject();
- MfaLevel? oldMfaLevel = mfaLevelModel?.OldValue?.ToObject(),
- newMfaLevel = mfaLevelModel?.NewValue?.ToObject();
- int? oldContentFilter = contentFilterModel?.OldValue?.ToObject(),
- newContentFilter = contentFilterModel?.NewValue?.ToObject();
+ int? oldAfkTimeout = afkTimeoutModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newAfkTimeout = afkTimeoutModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ DefaultMessageNotifications? oldDefaultMessageNotifications = defaultMessageNotificationsModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newDefaultMessageNotifications = defaultMessageNotificationsModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ ulong? oldAfkChannelId = afkChannelModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newAfkChannelId = afkChannelModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ string oldName = nameModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newName = nameModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ string oldRegionId = regionIdModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newRegionId = regionIdModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ string oldIconHash = iconHashModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newIconHash = iconHashModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ VerificationLevel? oldVerificationLevel = verificationLevelModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newVerificationLevel = verificationLevelModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ ulong? oldOwnerId = ownerIdModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newOwnerId = ownerIdModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ MfaLevel? oldMfaLevel = mfaLevelModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newMfaLevel = mfaLevelModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ int? oldContentFilter = contentFilterModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newContentFilter = contentFilterModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
IUser oldOwner = null;
if (oldOwnerId != null)
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteCreateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteCreateAuditLogData.cs
index 1025dd315..215a3c164 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteCreateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteCreateAuditLogData.cs
@@ -33,13 +33,13 @@ namespace Discord.Rest
var usesModel = changes.FirstOrDefault(x => x.ChangedProperty == "uses");
var maxUsesModel = changes.FirstOrDefault(x => x.ChangedProperty == "max_uses");
- var maxAge = maxAgeModel.NewValue.ToObject();
- var code = codeModel.NewValue.ToObject();
- var temporary = temporaryModel.NewValue.ToObject();
- var inviterId = inviterIdModel.NewValue.ToObject();
- var channelId = channelIdModel.NewValue.ToObject();
- var uses = usesModel.NewValue.ToObject();
- var maxUses = maxUsesModel.NewValue.ToObject();
+ var maxAge = maxAgeModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var code = codeModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var temporary = temporaryModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var inviterId = inviterIdModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var channelId = channelIdModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var uses = usesModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var maxUses = maxUsesModel.NewValue.ToObject(discord.ApiClient.Serializer);
var inviterInfo = log.Users.FirstOrDefault(x => x.Id == inviterId);
var inviter = RestUser.Create(discord, inviterInfo);
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteDeleteAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteDeleteAuditLogData.cs
index e77857d83..5e49bb641 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteDeleteAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteDeleteAuditLogData.cs
@@ -33,13 +33,13 @@ namespace Discord.Rest
var usesModel = changes.FirstOrDefault(x => x.ChangedProperty == "uses");
var maxUsesModel = changes.FirstOrDefault(x => x.ChangedProperty == "max_uses");
- var maxAge = maxAgeModel.OldValue.ToObject();
- var code = codeModel.OldValue.ToObject();
- var temporary = temporaryModel.OldValue.ToObject();
- var inviterId = inviterIdModel.OldValue.ToObject();
- var channelId = channelIdModel.OldValue.ToObject();
- var uses = usesModel.OldValue.ToObject();
- var maxUses = maxUsesModel.OldValue.ToObject();
+ var maxAge = maxAgeModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var code = codeModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var temporary = temporaryModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var inviterId = inviterIdModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var channelId = channelIdModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var uses = usesModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var maxUses = maxUsesModel.OldValue.ToObject(discord.ApiClient.Serializer);
var inviterInfo = log.Users.FirstOrDefault(x => x.Id == inviterId);
var inviter = RestUser.Create(discord, inviterInfo);
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteUpdateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteUpdateAuditLogData.cs
index 7ba65e232..95bfb845a 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteUpdateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/InviteUpdateAuditLogData.cs
@@ -26,16 +26,16 @@ namespace Discord.Rest
var channelIdModel = changes.FirstOrDefault(x => x.ChangedProperty == "channel_id");
var maxUsesModel = changes.FirstOrDefault(x => x.ChangedProperty == "max_uses");
- int? oldMaxAge = maxAgeModel?.OldValue?.ToObject(),
- newMaxAge = maxAgeModel?.NewValue?.ToObject();
- string oldCode = codeModel?.OldValue?.ToObject(),
- newCode = codeModel?.NewValue?.ToObject();
- bool? oldTemporary = temporaryModel?.OldValue?.ToObject(),
- newTemporary = temporaryModel?.NewValue?.ToObject();
- ulong? oldChannelId = channelIdModel?.OldValue?.ToObject(),
- newChannelId = channelIdModel?.NewValue?.ToObject();
- int? oldMaxUses = maxUsesModel?.OldValue?.ToObject(),
- newMaxUses = maxUsesModel?.NewValue?.ToObject();
+ int? oldMaxAge = maxAgeModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newMaxAge = maxAgeModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ string oldCode = codeModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newCode = codeModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ bool? oldTemporary = temporaryModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newTemporary = temporaryModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ ulong? oldChannelId = channelIdModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newChannelId = channelIdModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ int? oldMaxUses = maxUsesModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newMaxUses = maxUsesModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
var before = new InviteInfo(oldMaxAge, oldCode, oldTemporary, oldChannelId, oldMaxUses);
var after = new InviteInfo(newMaxAge, newCode, newTemporary, newChannelId, newMaxUses);
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberRoleAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberRoleAuditLogData.cs
index cbba6c83b..763c90c68 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberRoleAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberRoleAuditLogData.cs
@@ -21,7 +21,7 @@ namespace Discord.Rest
{
var changes = entry.Changes;
- var roleInfos = changes.SelectMany(x => x.NewValue.ToObject(),
+ var roleInfos = changes.SelectMany(x => x.NewValue.ToObject(discord.ApiClient.Serializer),
(model, role) => new { model.ChangedProperty, Role = role })
.Select(x => new MemberRoleEditInfo(x.Role.Name, x.Role.Id, x.ChangedProperty == "$add"))
.ToList();
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberUpdateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberUpdateAuditLogData.cs
index 8be0ada42..238c79843 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberUpdateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberUpdateAuditLogData.cs
@@ -26,14 +26,14 @@ namespace Discord.Rest
var muteModel = changes.FirstOrDefault(x => x.ChangedProperty == "mute");
var avatarModel = changes.FirstOrDefault(x => x.ChangedProperty == "avatar_hash");
- string oldNick = nickModel?.OldValue?.ToObject(),
- newNick = nickModel?.NewValue?.ToObject();
- bool? oldDeaf = deafModel?.OldValue?.ToObject(),
- newDeaf = deafModel?.NewValue?.ToObject();
- bool? oldMute = muteModel?.OldValue?.ToObject(),
- newMute = muteModel?.NewValue?.ToObject();
- string oldAvatar = avatarModel?.OldValue?.ToObject(),
- newAvatar = avatarModel?.NewValue?.ToObject();
+ string oldNick = nickModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newNick = nickModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ bool? oldDeaf = deafModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newDeaf = deafModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ bool? oldMute = muteModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newMute = muteModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ string oldAvatar = avatarModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newAvatar = avatarModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
var targetInfo = log.Users.FirstOrDefault(x => x.Id == entry.TargetId);
var user = RestUser.Create(discord, targetInfo);
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteCreateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteCreateAuditLogData.cs
index 59403d207..a9ccd4db3 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteCreateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteCreateAuditLogData.cs
@@ -22,17 +22,15 @@ namespace Discord.Rest
var denyModel = changes.FirstOrDefault(x => x.ChangedProperty == "deny");
var allowModel = changes.FirstOrDefault(x => x.ChangedProperty == "allow");
- var deny = denyModel.NewValue.ToObject();
- var allow = allowModel.NewValue.ToObject();
+ var deny = denyModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var allow = allowModel.NewValue.ToObject(discord.ApiClient.Serializer);
var permissions = new OverwritePermissions(allow, deny);
var id = entry.Options.OverwriteTargetId.Value;
var type = entry.Options.OverwriteType;
- PermissionTarget target = type == "member" ? PermissionTarget.User : PermissionTarget.Role;
-
- return new OverwriteCreateAuditLogData(new Overwrite(id, target, permissions));
+ return new OverwriteCreateAuditLogData(new Overwrite(id, type, permissions));
}
///
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteDeleteAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteDeleteAuditLogData.cs
index 60e63b9db..1e51fa5e3 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteDeleteAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteDeleteAuditLogData.cs
@@ -24,14 +24,12 @@ namespace Discord.Rest
var idModel = changes.FirstOrDefault(x => x.ChangedProperty == "id");
var allowModel = changes.FirstOrDefault(x => x.ChangedProperty == "allow");
- var deny = denyModel.OldValue.ToObject();
- var type = typeModel.OldValue.ToObject();
- var id = idModel.OldValue.ToObject();
- var allow = allowModel.OldValue.ToObject();
+ var deny = denyModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var type = typeModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var id = idModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var allow = allowModel.OldValue.ToObject(discord.ApiClient.Serializer);
- PermissionTarget target = type == "member" ? PermissionTarget.User : PermissionTarget.Role;
-
- return new OverwriteDeleteAuditLogData(new Overwrite(id, target, new OverwritePermissions(allow, deny)));
+ return new OverwriteDeleteAuditLogData(new Overwrite(id, type, new OverwritePermissions(allow, deny)));
}
///
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteUpdateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteUpdateAuditLogData.cs
index 15b7b8c0e..ac67c85cf 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteUpdateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/OverwriteUpdateAuditLogData.cs
@@ -25,17 +25,17 @@ namespace Discord.Rest
var denyModel = changes.FirstOrDefault(x => x.ChangedProperty == "deny");
var allowModel = changes.FirstOrDefault(x => x.ChangedProperty == "allow");
- var beforeAllow = allowModel?.OldValue?.ToObject();
- var afterAllow = allowModel?.NewValue?.ToObject();
- var beforeDeny = denyModel?.OldValue?.ToObject();
- var afterDeny = denyModel?.OldValue?.ToObject();
+ var beforeAllow = allowModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
+ var afterAllow = allowModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ var beforeDeny = denyModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
+ var afterDeny = denyModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
var beforePermissions = new OverwritePermissions(beforeAllow ?? 0, beforeDeny ?? 0);
var afterPermissions = new OverwritePermissions(afterAllow ?? 0, afterDeny ?? 0);
- PermissionTarget target = entry.Options.OverwriteType == "member" ? PermissionTarget.User : PermissionTarget.Role;
+ var type = entry.Options.OverwriteType;
- return new OverwriteUpdateAuditLogData(beforePermissions, afterPermissions, entry.Options.OverwriteTargetId.Value, target);
+ return new OverwriteUpdateAuditLogData(beforePermissions, afterPermissions, entry.Options.OverwriteTargetId.Value, type);
}
///
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleCreateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleCreateAuditLogData.cs
index cb87af1ea..be59cdea0 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleCreateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleCreateAuditLogData.cs
@@ -26,11 +26,11 @@ namespace Discord.Rest
var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name");
var permissionsModel = changes.FirstOrDefault(x => x.ChangedProperty == "permissions");
- uint? colorRaw = colorModel?.NewValue?.ToObject();
- bool? mentionable = mentionableModel?.NewValue?.ToObject();
- bool? hoist = hoistModel?.NewValue?.ToObject();
- string name = nameModel?.NewValue?.ToObject();
- ulong? permissionsRaw = permissionsModel?.NewValue?.ToObject();
+ uint? colorRaw = colorModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ bool? mentionable = mentionableModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ bool? hoist = hoistModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ string name = nameModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ ulong? permissionsRaw = permissionsModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
Color? color = null;
GuildPermissions? permissions = null;
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleDeleteAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleDeleteAuditLogData.cs
index 8fbbd12b9..ae397840f 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleDeleteAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleDeleteAuditLogData.cs
@@ -26,11 +26,11 @@ namespace Discord.Rest
var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name");
var permissionsModel = changes.FirstOrDefault(x => x.ChangedProperty == "permissions");
- uint? colorRaw = colorModel?.OldValue?.ToObject();
- bool? mentionable = mentionableModel?.OldValue?.ToObject();
- bool? hoist = hoistModel?.OldValue?.ToObject();
- string name = nameModel?.OldValue?.ToObject();
- ulong? permissionsRaw = permissionsModel?.OldValue?.ToObject();
+ uint? colorRaw = colorModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
+ bool? mentionable = mentionableModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
+ bool? hoist = hoistModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
+ string name = nameModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
+ ulong? permissionsRaw = permissionsModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
Color? color = null;
GuildPermissions? permissions = null;
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleUpdateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleUpdateAuditLogData.cs
index a23a735b4..f98fc3e23 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleUpdateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/RoleUpdateAuditLogData.cs
@@ -27,16 +27,16 @@ namespace Discord.Rest
var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name");
var permissionsModel = changes.FirstOrDefault(x => x.ChangedProperty == "permissions");
- uint? oldColorRaw = colorModel?.OldValue?.ToObject(),
- newColorRaw = colorModel?.NewValue?.ToObject();
- bool? oldMentionable = mentionableModel?.OldValue?.ToObject(),
- newMentionable = mentionableModel?.NewValue?.ToObject();
- bool? oldHoist = hoistModel?.OldValue?.ToObject(),
- newHoist = hoistModel?.NewValue?.ToObject();
- string oldName = nameModel?.OldValue?.ToObject(),
- newName = nameModel?.NewValue?.ToObject();
- ulong? oldPermissionsRaw = permissionsModel?.OldValue?.ToObject(),
- newPermissionsRaw = permissionsModel?.OldValue?.ToObject();
+ uint? oldColorRaw = colorModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newColorRaw = colorModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ bool? oldMentionable = mentionableModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newMentionable = mentionableModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ bool? oldHoist = hoistModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newHoist = hoistModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ string oldName = nameModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newName = nameModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ ulong? oldPermissionsRaw = permissionsModel?.OldValue?.ToObject(discord.ApiClient.Serializer),
+ newPermissionsRaw = permissionsModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
Color? oldColor = null,
newColor = null;
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs
index 05ba0f920..21388f985 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs
@@ -26,9 +26,9 @@ namespace Discord.Rest
var typeModel = changes.FirstOrDefault(x => x.ChangedProperty == "type");
var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name");
- var channelId = channelIdModel.NewValue.ToObject();
- var type = typeModel.NewValue.ToObject();
- var name = nameModel.NewValue.ToObject();
+ var channelId = channelIdModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var type = typeModel.NewValue.ToObject(discord.ApiClient.Serializer);
+ var name = nameModel.NewValue.ToObject(discord.ApiClient.Serializer);
var webhookInfo = log.Webhooks?.FirstOrDefault(x => x.Id == entry.TargetId);
var webhook = RestWebhook.Create(discord, (IGuild)null, webhookInfo);
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookDeleteAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookDeleteAuditLogData.cs
index ec17e872c..308020c95 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookDeleteAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookDeleteAuditLogData.cs
@@ -28,10 +28,10 @@ namespace Discord.Rest
var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name");
var avatarHashModel = changes.FirstOrDefault(x => x.ChangedProperty == "avatar_hash");
- var channelId = channelIdModel.OldValue.ToObject();
- var type = typeModel.OldValue.ToObject();
- var name = nameModel.OldValue.ToObject();
- var avatarHash = avatarHashModel?.OldValue?.ToObject();
+ var channelId = channelIdModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var type = typeModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var name = nameModel.OldValue.ToObject(discord.ApiClient.Serializer);
+ var avatarHash = avatarHashModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
return new WebhookDeleteAuditLogData(entry.TargetId.Value, channelId, type, name, avatarHash);
}
diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookUpdateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookUpdateAuditLogData.cs
index d72bc7b71..aa2644ed8 100644
--- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookUpdateAuditLogData.cs
+++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookUpdateAuditLogData.cs
@@ -25,18 +25,18 @@ namespace Discord.Rest
var channelIdModel = changes.FirstOrDefault(x => x.ChangedProperty == "channel_id");
var avatarHashModel = changes.FirstOrDefault(x => x.ChangedProperty == "avatar_hash");
- var oldName = nameModel?.OldValue?.ToObject();
- var oldChannelId = channelIdModel?.OldValue?.ToObject();
- var oldAvatar = avatarHashModel?.OldValue?.ToObject();
+ var oldName = nameModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
+ var oldChannelId = channelIdModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
+ var oldAvatar = avatarHashModel?.OldValue?.ToObject(discord.ApiClient.Serializer);
var before = new WebhookInfo(oldName, oldChannelId, oldAvatar);
- var newName = nameModel?.NewValue?.ToObject();
- var newChannelId = channelIdModel?.NewValue?.ToObject();
- var newAvatar = avatarHashModel?.NewValue?.ToObject();
+ var newName = nameModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ var newChannelId = channelIdModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
+ var newAvatar = avatarHashModel?.NewValue?.ToObject(discord.ApiClient.Serializer);
var after = new WebhookInfo(newName, newChannelId, newAvatar);
var webhookInfo = log.Webhooks?.FirstOrDefault(x => x.Id == entry.TargetId);
- var webhook = RestWebhook.Create(discord, (IGuild)null, webhookInfo);
+ var webhook = webhookInfo != null ? RestWebhook.Create(discord, (IGuild)null, webhookInfo) : null;
return new WebhookUpdateAuditLogData(webhook, before, after);
}