Browse Source

Add RawReactionActionEvent.event_type attribute.

This helps differentiate between reaction removal or addition.
pull/2307/head
Rapptz 6 years ago
parent
commit
f513d831d1
  1. 10
      discord/raw_models.py
  2. 4
      discord/state.py

10
discord/raw_models.py

@ -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`
@ -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'])

4
discord/state.py

@ -437,7 +437,7 @@ class ConnectionState:
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
@ -463,7 +463,7 @@ class ConnectionState:
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)

Loading…
Cancel
Save