Browse Source

feature: Add GuildEmote#CreatorID (#1213)

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

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

    lint: clean up some long lines

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

    Explain why CreatorId can be null sometimes

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

    Add the CreatorId property to GuildEmote implementation

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

    Update the Emoji API model to add User? attribute
tags/2.0
Christopher Felegy 6 years ago
parent
commit
92bf8363ca
3 changed files with 20 additions and 6 deletions
  1. +9
    -1
      src/Discord.Net.Core/Entities/Emotes/GuildEmote.cs
  2. +3
    -1
      src/Discord.Net.Rest/API/Common/Emoji.cs
  3. +8
    -4
      src/Discord.Net.Rest/Extensions/EntityExtensions.cs

+ 9
- 1
src/Discord.Net.Core/Entities/Emotes/GuildEmote.cs 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})";


+ 3
- 1
src/Discord.Net.Rest/API/Common/Emoji.cs 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; }
}
}

+ 8
- 4
src/Discord.Net.Rest/Extensions/EntityExtensions.cs 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)
{


Loading…
Cancel
Save