@@ -11,11 +11,14 @@ namespace Discord.Rest | |||
/// </summary> | |||
public class ChannelCreateAuditLogData : IAuditLogData | |||
{ | |||
private ChannelCreateAuditLogData(ulong id, string name, ChannelType type, IReadOnlyCollection<Overwrite> overwrites) | |||
private ChannelCreateAuditLogData(ulong id, string name, ChannelType type, int? rateLimit, bool? nsfw, int? bitrate, IReadOnlyCollection<Overwrite> overwrites) | |||
{ | |||
ChannelId = id; | |||
ChannelName = name; | |||
ChannelType = type; | |||
SlowModeInterval = rateLimit; | |||
IsNsfw = nsfw; | |||
Bitrate = bitrate; | |||
Overwrites = overwrites; | |||
} | |||
@@ -27,9 +30,15 @@ namespace Discord.Rest | |||
var overwritesModel = changes.FirstOrDefault(x => x.ChangedProperty == "permission_overwrites"); | |||
var typeModel = changes.FirstOrDefault(x => x.ChangedProperty == "type"); | |||
var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name"); | |||
var rateLimitPerUserModel = changes.FirstOrDefault(x => x.ChangedProperty == "rate_limit_per_user"); | |||
var nsfwModel = changes.FirstOrDefault(x => x.ChangedProperty == "nsfw"); | |||
var bitrateModel = changes.FirstOrDefault(x => x.ChangedProperty == "bitrate"); | |||
var type = typeModel.NewValue.ToObject<ChannelType>(discord.ApiClient.Serializer); | |||
var name = nameModel.NewValue.ToObject<string>(discord.ApiClient.Serializer); | |||
int? rateLimitPerUser = rateLimitPerUserModel?.NewValue?.ToObject<int>(discord.ApiClient.Serializer); | |||
bool? nsfw = nsfwModel?.NewValue?.ToObject<bool>(discord.ApiClient.Serializer); | |||
int? bitrate = bitrateModel?.NewValue?.ToObject<int>(discord.ApiClient.Serializer); | |||
foreach (var overwrite in overwritesModel.NewValue) | |||
{ | |||
@@ -41,7 +50,7 @@ namespace Discord.Rest | |||
overwrites.Add(new Overwrite(id, permType, new OverwritePermissions(allow, deny))); | |||
} | |||
return new ChannelCreateAuditLogData(entry.TargetId.Value, name, type, overwrites.ToReadOnlyCollection()); | |||
return new ChannelCreateAuditLogData(entry.TargetId.Value, name, type, rateLimitPerUser, nsfw, bitrate, overwrites.ToReadOnlyCollection()); | |||
} | |||
/// <summary> | |||
@@ -66,6 +75,29 @@ namespace Discord.Rest | |||
/// </returns> | |||
public ChannelType ChannelType { get; } | |||
/// <summary> | |||
/// Gets the current slow-mode delay of the created channel. | |||
/// </summary> | |||
/// <returns> | |||
/// An <see cref="Int32"/> representing the time in seconds required before the user can send another | |||
/// message; <c>0</c> if disabled. | |||
/// </returns> | |||
public int? SlowModeInterval { get; } | |||
/// <summary> | |||
/// Gets the value that indicates whether the created channel is NSFW. | |||
/// </summary> | |||
/// <returns> | |||
/// <c>true</c> if the created channel has the NSFW flag enabled; otherwise <c>false</c>. | |||
/// </returns> | |||
public bool? IsNsfw { get; } | |||
/// <summary> | |||
/// Gets the bit-rate that the clients in the created voice channel are requested to use. | |||
/// </summary> | |||
/// <returns> | |||
/// An <see cref="Int32"/> representing the bit-rate (bps) that the created voice channel defines and requests the | |||
/// client(s) to use. | |||
/// </returns> | |||
public int? Bitrate { get; } | |||
/// <summary> | |||
/// Gets a collection of permission overwrites that was assigned to the created channel. | |||
/// </summary> | |||
/// <returns> | |||
@@ -11,11 +11,14 @@ namespace Discord.Rest | |||
/// </summary> | |||
public class ChannelDeleteAuditLogData : IAuditLogData | |||
{ | |||
private ChannelDeleteAuditLogData(ulong id, string name, ChannelType type, IReadOnlyCollection<Overwrite> overwrites) | |||
private ChannelDeleteAuditLogData(ulong id, string name, ChannelType type, int? rateLimit, bool? nsfw, int? bitrate, IReadOnlyCollection<Overwrite> overwrites) | |||
{ | |||
ChannelId = id; | |||
ChannelName = name; | |||
ChannelType = type; | |||
SlowModeInterval = rateLimit; | |||
IsNsfw = nsfw; | |||
Bitrate = bitrate; | |||
Overwrites = overwrites; | |||
} | |||
@@ -26,15 +29,21 @@ namespace Discord.Rest | |||
var overwritesModel = changes.FirstOrDefault(x => x.ChangedProperty == "permission_overwrites"); | |||
var typeModel = changes.FirstOrDefault(x => x.ChangedProperty == "type"); | |||
var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name"); | |||
var rateLimitPerUserModel = changes.FirstOrDefault(x => x.ChangedProperty == "rate_limit_per_user"); | |||
var nsfwModel = changes.FirstOrDefault(x => x.ChangedProperty == "nsfw"); | |||
var bitrateModel = changes.FirstOrDefault(x => x.ChangedProperty == "bitrate"); | |||
var overwrites = overwritesModel.OldValue.ToObject<API.Overwrite[]>(discord.ApiClient.Serializer) | |||
.Select(x => new Overwrite(x.TargetId, x.TargetType, new OverwritePermissions(x.Allow, x.Deny))) | |||
.ToList(); | |||
var type = typeModel.OldValue.ToObject<ChannelType>(discord.ApiClient.Serializer); | |||
var name = nameModel.OldValue.ToObject<string>(discord.ApiClient.Serializer); | |||
int? rateLimitPerUser = rateLimitPerUserModel?.OldValue?.ToObject<int>(discord.ApiClient.Serializer); | |||
bool? nsfw = nsfwModel?.OldValue?.ToObject<bool>(discord.ApiClient.Serializer); | |||
int? bitrate = bitrateModel?.OldValue?.ToObject<int>(discord.ApiClient.Serializer); | |||
var id = entry.TargetId.Value; | |||
return new ChannelDeleteAuditLogData(id, name, type, overwrites.ToReadOnlyCollection()); | |||
return new ChannelDeleteAuditLogData(id, name, type, rateLimitPerUser, nsfw, bitrate, overwrites.ToReadOnlyCollection()); | |||
} | |||
/// <summary> | |||
@@ -59,6 +68,29 @@ namespace Discord.Rest | |||
/// </returns> | |||
public ChannelType ChannelType { get; } | |||
/// <summary> | |||
/// Gets the slow-mode delay of the deleted channel. | |||
/// </summary> | |||
/// <returns> | |||
/// An <see cref="Int32"/> representing the time in seconds required before the user can send another | |||
/// message; <c>0</c> if disabled. | |||
/// </returns> | |||
public int? SlowModeInterval { get; } | |||
/// <summary> | |||
/// Gets the value that indicates whether the deleted channel was NSFW. | |||
/// </summary> | |||
/// <returns> | |||
/// <c>true</c> if this channel had the NSFW flag enabled; otherwise <c>false</c>. | |||
/// </returns> | |||
public bool? IsNsfw { get; } | |||
/// <summary> | |||
/// Gets the bit-rate of this channel if applicable. | |||
/// </summary> | |||
/// <returns> | |||
/// An <see cref="Int32"/> representing the bit-rate set of the voice channel; <c>null</c> if not | |||
/// applicable. | |||
/// </returns> | |||
public int? Bitrate { get; } | |||
/// <summary> | |||
/// Gets a collection of permission overwrites that was assigned to the deleted channel. | |||
/// </summary> | |||
/// <returns> | |||