Browse Source

Merge branch 'dev' into docs/pre-release

pull/1161/head
Still Hsu 7 years ago
parent
commit
d9321d160e
No known key found for this signature in database GPG Key ID: 8601A145FDA95209
3 changed files with 52 additions and 21 deletions
  1. +11
    -0
      src/Discord.Net.Core/Extensions/MessageExtensions.cs
  2. +18
    -0
      src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberInfo.cs
  3. +23
    -21
      src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberUpdateAuditLogData.cs

+ 11
- 0
src/Discord.Net.Core/Extensions/MessageExtensions.cs View File

@@ -0,0 +1,11 @@
namespace Discord
{
public static class MessageExtensions
{
public static string GetJumpUrl(this IMessage msg)
{
var channel = msg.Channel;
return $"https://discordapp.com/channels/{(channel is IDMChannel ? "@me" : $"{(channel as ITextChannel).GuildId}")}/{channel.Id}/{msg.Id}";
}
}
}

+ 18
- 0
src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberInfo.cs View File

@@ -0,0 +1,18 @@
namespace Discord.Rest
{
public struct MemberInfo
{
internal MemberInfo(string nick, bool? deaf, bool? mute, string avatar_hash)
{
Nickname = nick;
Deaf = deaf;
Mute = mute;
AvatarHash = avatar_hash;
}

public string Nickname { get; }
public bool? Deaf { get; }
public bool? Mute { get; }
public string AvatarHash { get; }
}
}

+ 23
- 21
src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberUpdateAuditLogData.cs View File

@@ -10,24 +10,38 @@ namespace Discord.Rest
/// </summary> /// </summary>
public class MemberUpdateAuditLogData : IAuditLogData public class MemberUpdateAuditLogData : IAuditLogData
{ {
private MemberUpdateAuditLogData(IUser target, string newNick, string oldNick)
private MemberUpdateAuditLogData(IUser target, MemberInfo before, MemberInfo after)
{ {
Target = target; Target = target;
NewNick = newNick;
OldNick = oldNick;
Before = before;
After = after;
} }


internal static MemberUpdateAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry) internal static MemberUpdateAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry)
{ {
var changes = entry.Changes.FirstOrDefault(x => x.ChangedProperty == "nick");
var changes = entry.Changes;


var newNick = changes.NewValue?.ToObject<string>();
var oldNick = changes.OldValue?.ToObject<string>();
var nickModel = changes.FirstOrDefault(x => x.ChangedProperty == "nick");
var deafModel = changes.FirstOrDefault(x => x.ChangedProperty == "deaf");
var muteModel = changes.FirstOrDefault(x => x.ChangedProperty == "mute");
var avatarModel = changes.FirstOrDefault(x => x.ChangedProperty == "avatar_hash");

string oldNick = nickModel?.OldValue?.ToObject<string>(),
newNick = nickModel?.NewValue?.ToObject<string>();
bool? oldDeaf = deafModel?.OldValue?.ToObject<bool>(),
newDeaf = deafModel?.NewValue?.ToObject<bool>();
bool? oldMute = muteModel?.OldValue?.ToObject<bool>(),
newMute = muteModel?.NewValue?.ToObject<bool>();
string oldAvatar = avatarModel?.OldValue?.ToObject<string>(),
newAvatar = avatarModel?.NewValue?.ToObject<string>();


var targetInfo = log.Users.FirstOrDefault(x => x.Id == entry.TargetId); var targetInfo = log.Users.FirstOrDefault(x => x.Id == entry.TargetId);
var user = RestUser.Create(discord, targetInfo); var user = RestUser.Create(discord, targetInfo);


return new MemberUpdateAuditLogData(user, newNick, oldNick);
var before = new MemberInfo(oldNick, oldDeaf, oldMute, oldAvatar);
var after = new MemberInfo(newNick, newDeaf, newMute, newAvatar);

return new MemberUpdateAuditLogData(user, before, after);
} }


/// <summary> /// <summary>
@@ -37,19 +51,7 @@ namespace Discord.Rest
/// A user object representing the user who the changes were performed on. /// A user object representing the user who the changes were performed on.
/// </returns> /// </returns>
public IUser Target { get; } public IUser Target { get; }
/// <summary>
/// Gets the new nickname of the user.
/// </summary>
/// <returns>
/// A string containing the new nickname of the user; <c>null</c> if the user no longer had a nickname.
/// </returns>
public string NewNick { get; }
/// <summary>
/// Gets the old nickname of the user.
/// </summary>
/// <returns>
/// A string containing the old nickname of the user; <c>null</c> if the user did not have a nickname.
/// </returns>
public string OldNick { get; }
public MemberInfo Before { get; }
public MemberInfo After { get; }
} }
} }

Loading…
Cancel
Save