Skip to content

Commit

Permalink
Add RawReactionActionEvent.event_type attribute.
Browse files Browse the repository at this point in the history
This helps differentiate between reaction removal or addition.
  • Loading branch information
Rapptz committed Aug 11, 2019
1 parent ceaba01 commit f513d83
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
10 changes: 9 additions & 1 deletion discord/raw_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ class RawReactionActionEvent(_RawReprMixin):
"""Represents the payload for a :func:`on_raw_reaction_add` or
:func:`on_raw_reaction_remove` event.
.. versionchanged:: 1.3.0
The ``event_type`` attribute was added.
Attributes
-----------
message_id: :class:`int`
Expand All @@ -124,15 +127,20 @@ class RawReactionActionEvent(_RawReprMixin):
The guild ID where the reaction got added or removed, if applicable.
emoji: :class:`PartialEmoji`
The custom or unicode emoji being used.
event_type: :class:`str`
The event type that triggered this action. Can be
``REACTION_ADD`` for reaction addition or
``REACTION_REMOVE`` for reaction removal.
"""

__slots__ = ('message_id', 'user_id', 'channel_id', 'guild_id', 'emoji')

def __init__(self, data, emoji):
def __init__(self, data, emoji, event_type):
self.message_id = int(data['message_id'])
self.channel_id = int(data['channel_id'])
self.user_id = int(data['user_id'])
self.emoji = emoji
self.event_type = event_type

try:
self.guild_id = int(data['guild_id'])
Expand Down
4 changes: 2 additions & 2 deletions discord/state.py
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ def parse_message_reaction_add(self, data):
emoji_data = data['emoji']
emoji_id = utils._get_as_snowflake(emoji_data, 'id')
emoji = PartialEmoji.with_state(self, animated=emoji_data['animated'], id=emoji_id, name=emoji_data['name'])
raw = RawReactionActionEvent(data, emoji)
raw = RawReactionActionEvent(data, emoji, 'REACTION_ADD')
self.dispatch('raw_reaction_add', raw)

# rich interface here
Expand All @@ -463,7 +463,7 @@ def parse_message_reaction_remove(self, data):
emoji_data = data['emoji']
emoji_id = utils._get_as_snowflake(emoji_data, 'id')
emoji = PartialEmoji.with_state(self, animated=emoji_data['animated'], id=emoji_id, name=emoji_data['name'])
raw = RawReactionActionEvent(data, emoji)
raw = RawReactionActionEvent(data, emoji, 'REACTION_REMOVE')
self.dispatch('raw_reaction_remove', raw)

message = self._get_message(raw.message_id)
Expand Down

0 comments on commit f513d83

Please sign in to comment.