diff --git a/discord/http.py b/discord/http.py index 7ec64d82c..4469f9d40 100644 --- a/discord/http.py +++ b/discord/http.py @@ -386,6 +386,11 @@ class HTTPClient: channel_id=channel_id, message_id=message_id, member_id=member_id, emoji=emoji) return self.request(r, header_bypass_delay=0.25) + def remove_own_reaction(self, message_id, channel_id, emoji): + r = Route('DELETE', '/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/@me', + channel_id=channel_id, message_id=message_id, emoji=emoji) + return self.request(r, header_bypass_delay=0.25) + def get_reaction_users(self, message_id, channel_id, emoji, limit, after=None): r = Route('GET', '/channels/{channel_id}/messages/{message_id}/reactions/{emoji}', channel_id=channel_id, message_id=message_id, emoji=emoji) diff --git a/discord/message.py b/discord/message.py index 15e7cfb5b..8059647d0 100644 --- a/discord/message.py +++ b/discord/message.py @@ -701,7 +701,10 @@ class Message: else: raise InvalidArgument('emoji argument must be str, Emoji, or Reaction not {.__class__.__name__}.'.format(emoji)) - yield from self._state.http.remove_reaction(self.id, self.channel.id, emoji, member.id) + if member.id == self._state.self_id: + yield from self._state.http.remove_own_reaction(self.id, self.channel.id, emoji) + else: + yield from self._state.http.remove_reaction(self.id, self.channel.id, emoji, member.id) @asyncio.coroutine def clear_reactions(self):