diff --git a/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs b/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs
index b3d6430d3..934350aea 100644
--- a/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs
+++ b/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs
@@ -96,6 +96,23 @@ namespace Discord
///
Task RemoveReactionAsync(IEmote emote, IUser user, RequestOptions options = null);
///
+ /// Removes a reaction from message.
+ ///
+ ///
+ /// The following example removes the reaction, 💕, added by the user with ID 84291986575613952 from the message.
+ ///
+ /// await msg.RemoveReactionAsync(new Emoji("\U0001f495"), 84291986575613952);
+ ///
+ ///
+ /// The emoji used to react to this message.
+ /// The ID of the user that added the emoji.
+ /// The options to be used when sending the request.
+ ///
+ /// A task that represents the asynchronous operation for removing a reaction to this message.
+ ///
+ ///
+ Task RemoveReactionAsync(IEmote emote, ulong userId, RequestOptions options = null);
+ ///
/// Removes all reactions from this message.
///
/// The options to be used when sending the request.
diff --git a/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs b/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs
index 2d137a131..1189572d6 100644
--- a/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs
+++ b/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs
@@ -50,9 +50,9 @@ namespace Discord.Rest
await client.ApiClient.AddReactionAsync(msg.Channel.Id, msg.Id, emote is Emote e ? $"{e.Name}:{e.Id}" : emote.Name, options).ConfigureAwait(false);
}
- public static async Task RemoveReactionAsync(IMessage msg, IUser user, IEmote emote, BaseDiscordClient client, RequestOptions options)
+ public static async Task RemoveReactionAsync(IMessage msg, ulong userId, IEmote emote, BaseDiscordClient client, RequestOptions options)
{
- await client.ApiClient.RemoveReactionAsync(msg.Channel.Id, msg.Id, user.Id, emote is Emote e ? $"{e.Name}:{e.Id}" : emote.Name, options).ConfigureAwait(false);
+ await client.ApiClient.RemoveReactionAsync(msg.Channel.Id, msg.Id, userId, emote is Emote e ? $"{e.Name}:{e.Id}" : emote.Name, options).ConfigureAwait(false);
}
public static async Task RemoveAllReactionsAsync(IMessage msg, BaseDiscordClient client, RequestOptions options)
diff --git a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs
index a6951aa34..3260ecf70 100644
--- a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs
+++ b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs
@@ -155,7 +155,10 @@ namespace Discord.Rest
=> MessageHelper.AddReactionAsync(this, emote, Discord, options);
///
public Task RemoveReactionAsync(IEmote emote, IUser user, RequestOptions options = null)
- => MessageHelper.RemoveReactionAsync(this, user, emote, Discord, options);
+ => MessageHelper.RemoveReactionAsync(this, user.Id, emote, Discord, options);
+ ///
+ public Task RemoveReactionAsync(IEmote emote, ulong userId, RequestOptions options = null)
+ => MessageHelper.RemoveReactionAsync(this, userId, emote, Discord, options);
///
public Task RemoveAllReactionsAsync(RequestOptions options = null)
=> MessageHelper.RemoveAllReactionsAsync(this, Discord, options);
diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs
index 6f8c10800..948e4576e 100644
--- a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs
+++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs
@@ -151,7 +151,10 @@ namespace Discord.WebSocket
=> MessageHelper.AddReactionAsync(this, emote, Discord, options);
///
public Task RemoveReactionAsync(IEmote emote, IUser user, RequestOptions options = null)
- => MessageHelper.RemoveReactionAsync(this, user, emote, Discord, options);
+ => MessageHelper.RemoveReactionAsync(this, user.Id, emote, Discord, options);
+ ///
+ public Task RemoveReactionAsync(IEmote emote, ulong userId, RequestOptions options = null)
+ => MessageHelper.RemoveReactionAsync(this, userId, emote, Discord, options);
///
public Task RemoveAllReactionsAsync(RequestOptions options = null)
=> MessageHelper.RemoveAllReactionsAsync(this, Discord, options);