diff --git a/src/Discord.Net.Core/API/Common/Emoji.cs b/src/Discord.Net.Core/API/Common/Emoji.cs index 032ae51eb..c04786039 100644 --- a/src/Discord.Net.Core/API/Common/Emoji.cs +++ b/src/Discord.Net.Core/API/Common/Emoji.cs @@ -6,7 +6,7 @@ namespace Discord.API public class Emoji { [JsonProperty("id")] - public ulong Id { get; set; } + public ulong? Id { get; set; } [JsonProperty("name")] public string Name { get; set; } [JsonProperty("roles")] diff --git a/src/Discord.Net.Core/Entities/Guilds/GuildEmoji.cs b/src/Discord.Net.Core/Entities/Guilds/GuildEmoji.cs index 8b2bbd9c2..94f79afa5 100644 --- a/src/Discord.Net.Core/Entities/Guilds/GuildEmoji.cs +++ b/src/Discord.Net.Core/Entities/Guilds/GuildEmoji.cs @@ -24,7 +24,7 @@ namespace Discord } internal static GuildEmoji Create(Model model) { - return new GuildEmoji(model.Id, model.Name, model.Managed, model.RequireColons, ImmutableArray.Create(model.Roles)); + return new GuildEmoji(model.Id.Value, model.Name, model.Managed, model.RequireColons, ImmutableArray.Create(model.Roles)); } public override string ToString() => Name; diff --git a/src/Discord.Net.Core/Entities/Messages/Emoji.cs b/src/Discord.Net.Core/Entities/Messages/Emoji.cs index fc71e944b..dddbe65f1 100644 --- a/src/Discord.Net.Core/Entities/Messages/Emoji.cs +++ b/src/Discord.Net.Core/Entities/Messages/Emoji.cs @@ -21,7 +21,7 @@ namespace Discord internal static Emoji FromApi(API.Emoji emoji) { - return new Emoji(emoji.Id, emoji.Name); + return new Emoji(emoji.Id.GetValueOrDefault(), emoji.Name); } public static Emoji Parse(string text) diff --git a/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs b/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs index 5b6ab2773..5fe0ccbea 100644 --- a/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs +++ b/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs @@ -25,7 +25,7 @@ namespace Discord Task RemoveReactionAsync(Emoji emoji, IUser user, RequestOptions options = null); /// Removes a reaction from this message. Task RemoveReactionAsync(string emoji, IUser user, RequestOptions options = null); - Task> GetReactionUsersAsync(string emoji, Action func, RequestOptions options = null); + Task> GetReactionUsersAsync(string emoji, int limit = 100, ulong? afterUserId = null, RequestOptions options = null); /// Transforms this message's text into a human readable form by resolving its tags. string Resolve( diff --git a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs index 1af844501..bc70e608e 100644 --- a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs +++ b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs @@ -143,8 +143,8 @@ namespace Discord.Rest public Task RemoveReactionAsync(string emoji, IUser user, RequestOptions options) => MessageHelper.RemoveReactionAsync(this, user, emoji, Discord, options); - public Task> GetReactionUsersAsync(string emoji, Action func, RequestOptions options) - => MessageHelper.GetReactionUsersAsync(this, emoji, func, Discord, options); + public Task> GetReactionUsersAsync(string emoji, int limit = 100, ulong? afterUserId = null, RequestOptions options = null) + => MessageHelper.GetReactionUsersAsync(this, emoji, x => { x.Limit = limit; x.AfterUserId = afterUserId.HasValue ? afterUserId.Value : Optional.Create(); }, Discord, options); public Task PinAsync(RequestOptions options) diff --git a/src/Discord.Net.Rpc/Entities/Messages/RpcUserMessage.cs b/src/Discord.Net.Rpc/Entities/Messages/RpcUserMessage.cs index 832e54d81..20129054f 100644 --- a/src/Discord.Net.Rpc/Entities/Messages/RpcUserMessage.cs +++ b/src/Discord.Net.Rpc/Entities/Messages/RpcUserMessage.cs @@ -112,8 +112,8 @@ namespace Discord.Rpc public Task RemoveReactionAsync(string emoji, IUser user, RequestOptions options) => MessageHelper.RemoveReactionAsync(this, user, emoji, Discord, options); - public Task> GetReactionUsersAsync(string emoji, Action func, RequestOptions options) - => MessageHelper.GetReactionUsersAsync(this, emoji, func, Discord, options); + public Task> GetReactionUsersAsync(string emoji, int limit, ulong? afterUserId, RequestOptions options = null) + => MessageHelper.GetReactionUsersAsync(this, emoji, x => { x.Limit = limit; x.AfterUserId = afterUserId.HasValue ? afterUserId.Value : Optional.Create(); }, Discord, options); public Task PinAsync(RequestOptions options) => MessageHelper.PinAsync(this, Discord, options); diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs index 957fa64b3..4d097fb32 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs @@ -135,9 +135,9 @@ namespace Discord.WebSocket => MessageHelper.RemoveReactionAsync(this, user, emoji, Discord, options); public Task RemoveReactionAsync(string emoji, IUser user, RequestOptions options) => MessageHelper.RemoveReactionAsync(this, user, emoji, Discord, options); - - public Task> GetReactionUsersAsync(string emoji, Action func, RequestOptions options) - => MessageHelper.GetReactionUsersAsync(this, emoji, func, Discord, options); + + public Task> GetReactionUsersAsync(string emoji, int limit = 100, ulong? afterUserId = null, RequestOptions options = null) + => MessageHelper.GetReactionUsersAsync(this, emoji, x => { x.Limit = limit; x.AfterUserId = afterUserId.HasValue ? afterUserId.Value : Optional.Create(); }, Discord, options); public Task PinAsync(RequestOptions options = null) => MessageHelper.PinAsync(this, Discord, options);