diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bec9cc0b9..c3f49fb70b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ These changes are available on the `master` branch, but have not yet been releas - Manage silence for new SSRC with existing user_id. ([#2808](https://github.com/Pycord-Development/pycord/pull/2808)) +- Unbound `raw` reference in `parse_message_update` causing errors on message updates. + ([#2905](https://github.com/Pycord-Development/pycord/pull/2905)) ### Removed diff --git a/discord/state.py b/discord/state.py index 9dbb3ee600..56bdcbd684 100644 --- a/discord/state.py +++ b/discord/state.py @@ -604,7 +604,6 @@ async def query_members( raise async def _delay_ready(self) -> None: - if self.cache_app_emojis and self.application_id: data = await self.http.get_all_application_emojis(self.application_id) for e in data.get("items", []): @@ -677,7 +676,9 @@ def parse_ready(self, data) -> None: else: self.application_id = utils._get_as_snowflake(application, "id") # flags will always be present here - self.application_flags = ApplicationFlags._from_value(application["flags"]) # type: ignore + self.application_flags = ApplicationFlags._from_value( + application["flags"] + ) # type: ignore for guild_data in data["guilds"]: self._add_guild_from_data(guild_data) @@ -775,11 +776,11 @@ def parse_message_delete_bulk(self, data) -> None: self._messages.remove(msg) # type: ignore def parse_message_update(self, data) -> None: - old_message = self._get_message(raw.message_id) - if old_message is not None: - self._messages.remove(old_message) + old_message = self._get_message(int(data["id"])) channel, _ = self._get_guild_channel(data) message = Message(channel=channel, data=data, state=self) + if old_message is not None: + self._messages.remove(old_message) self._messages.append(message) raw = RawMessageUpdateEvent(data, message) self.dispatch("raw_message_edit", raw) @@ -1376,7 +1377,9 @@ def parse_guild_stickers_update(self, data) -> None: for emoji in before_stickers: self._stickers.pop(emoji.id, None) # guild won't be None here - guild.stickers = tuple(map(lambda d: self.store_sticker(guild, d), data["stickers"])) # type: ignore + guild.stickers = tuple( + map(lambda d: self.store_sticker(guild, d), data["stickers"]) + ) # type: ignore self.dispatch("guild_stickers_update", guild, before_stickers, guild.stickers) def _get_create_guild(self, data): @@ -1581,7 +1584,10 @@ def parse_guild_members_chunk(self, data) -> None: presences = data.get("presences", []) # the guild won't be None here - members = [Member(guild=guild, data=member, state=self) for member in data.get("members", [])] # type: ignore + members = [ + Member(guild=guild, data=member, state=self) + for member in data.get("members", []) + ] # type: ignore _log.debug( "Processed a chunk for %s members in guild ID %s.", len(members), guild_id )