diff --git a/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs b/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs
index 1a8c54ab1..571f82749 100644
--- a/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs
+++ b/src/Discord.Net.Core/Entities/Messages/IUserMessage.cs
@@ -84,6 +84,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 message author 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 b963fd532..d870b793e 100644
--- a/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs
+++ b/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs
@@ -40,9 +40,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 dfef960c2..60b00cafa 100644
--- a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs
+++ b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs
@@ -149,7 +149,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 93d2b083e..9b4987ff2 100644
--- a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs
+++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs
@@ -145,7 +145,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);