diff options
Diffstat (limited to 'discord/state.py')
| -rw-r--r-- | discord/state.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/discord/state.py b/discord/state.py index ebde9ec0..11c58612 100644 --- a/discord/state.py +++ b/discord/state.py @@ -366,21 +366,22 @@ class ConnectionState: def parse_message_delete(self, data): raw = RawMessageDeleteEvent(data) - self.dispatch('raw_message_delete', raw) - found = self._get_message(raw.message_id) + raw.cached_message = found + self.dispatch('raw_message_delete', raw) if found is not None: self.dispatch('message_delete', found) self._messages.remove(found) def parse_message_delete_bulk(self, data): raw = RawBulkMessageDeleteEvent(data) + found_messages = [message for message in self._messages if message.id in raw.message_ids] + raw.cached_messages = found_messages self.dispatch('raw_bulk_message_delete', raw) - - to_be_deleted = [message for message in self._messages if message.id in raw.message_ids] - for msg in to_be_deleted: - self.dispatch('message_delete', msg) - self._messages.remove(msg) + if found_messages: + self.dispatch('bulk_message_delete', found_messages) + for msg in found_messages: + self._messages.remove(msg) def parse_message_update(self, data): raw = RawMessageUpdateEvent(data) |