Support MESSAGE_REACTION_REMOVE_ALL event.

This commit is contained in:
Rapptz 2016-11-21 02:49:50 -05:00
parent e8905fd41b
commit 92c3c2804d
2 changed files with 16 additions and 0 deletions

View File

@ -274,6 +274,13 @@ class ConnectionState:
self.dispatch('reaction_add', reaction, member)
def parse_message_reaction_remove_all(self, data):
message = self._get_message(data['message_id'])
if message is not None:
old_reactions = message.reactions.copy()
message.reactions.clear()
self.dispatch('reaction_clear', message, old_reactions)
def parse_message_reaction_remove(self, data):
message = self._get_message(data['message_id'])
if message is not None:

View File

@ -233,6 +233,15 @@ to handle it, which defaults to print a traceback and ignore the exception.
:param reaction: A :class:`Reaction` showing the current state of the reaction.
:param user: A :class:`User` or :class:`Member` of the user who removed the reaction.
.. function:: on_reaction_clear(message, reactions)
Called when a message has all its reactions removed from it. Similar to on_message_edit,
if the message is not found in the :attr:`Client.messages` cache, then this event
will not be called.
:param message: The :class:`Message` that had its reactions cleared.
:param reactions: A list of :class:`Reaction`\s that were removed.
.. function:: on_channel_delete(channel)
on_channel_create(channel)