feature: Add GuildEmote#CreatorID (#1213)

Co-authored-by: Chris Johnston <chris@thejohnstons.net>

commit 23f5abba4822151a6ba9cb5078752b113c4b8ce6
Author: Christopher Felegy <foxbot@protonmail.com>
Date:   Thu Dec 20 17:10:21 2018 -0500

    lint: clean up some long lines

commit 4a8a809db0c2d70c61367c3e1ed4013107cf9f0e
Author: Chris Johnston <chris@thejohnstons.net>
Date:   Sat Dec 15 00:33:05 2018 -0800

    Explain why CreatorId can be null sometimes

commit 9442e4e6358f85177e356f88cd82b73f9f42b1bb
Author: Chris Johnston <chris@thejohnstons.net>
Date:   Fri Dec 14 23:59:01 2018 -0800

    Add the CreatorId property to GuildEmote implementation

commit e0eb94d44cb37c259c27998878330bd68e5706c4
Author: Chris Johnston <chris@thejohnstons.net>
Date:   Fri Dec 14 23:41:54 2018 -0800

    Update the Emoji API model to add User? attribute
This commit is contained in:
Christopher Felegy
2018-12-20 17:10:40 -05:00
parent 65afd37502
commit 92bf8363ca
3 changed files with 20 additions and 6 deletions

View File

@@ -30,12 +30,20 @@ namespace Discord
/// A read-only list containing snowflake identifiers for roles that are allowed to use this emoji.
/// </returns>
public IReadOnlyList<ulong> RoleIds { get; }
/// <summary>
/// Gets the user Id that created this emoji.
/// </summary>
/// <returns>
/// A user Id of the user who created this emoji, which may be null. A null value only indicates that the creator was not supplied as part of the API response.
/// </returns>
public ulong? CreatorId { get; }
internal GuildEmote(ulong id, string name, bool animated, bool isManaged, bool requireColons, IReadOnlyList<ulong> roleIds) : base(id, name, animated)
internal GuildEmote(ulong id, string name, bool animated, bool isManaged, bool requireColons, IReadOnlyList<ulong> roleIds, ulong? userId) : base(id, name, animated)
{
IsManaged = isManaged;
RequireColons = requireColons;
RoleIds = roleIds;
CreatorId = userId;
}
private string DebuggerDisplay => $"{Name} ({Id})";

View File

@@ -1,4 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable CS1591
using Newtonsoft.Json;
namespace Discord.API
@@ -17,5 +17,7 @@ namespace Discord.API
public bool RequireColons { get; set; }
[JsonProperty("managed")]
public bool Managed { get; set; }
[JsonProperty("user")]
public Optional<User> User { get; set; }
}
}

View File

@@ -1,4 +1,4 @@
using System.Collections.Immutable;
using System.Collections.Immutable;
using System.Linq;
namespace Discord.Rest
@@ -6,9 +6,13 @@ namespace Discord.Rest
internal static class EntityExtensions
{
public static GuildEmote ToEntity(this API.Emoji model)
{
return new GuildEmote(model.Id.Value, model.Name, model.Animated.GetValueOrDefault(), model.Managed, model.RequireColons, ImmutableArray.Create(model.Roles));
}
=> new GuildEmote(model.Id.Value,
model.Name,
model.Animated.GetValueOrDefault(),
model.Managed,
model.RequireColons,
ImmutableArray.Create(model.Roles),
model.User.IsSpecified ? model.User.Value.Id : (ulong?)null);
public static Embed ToEntity(this API.Embed model)
{