From d921a039118af35ba63c28465b38319d2628a9df Mon Sep 17 00:00:00 2001 From: Rapptz Date: Sat, 12 Mar 2022 04:19:52 -0500 Subject: [PATCH] Fix bug where Guild.member_count would clear during update events Fix #7656 --- discord/guild.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/discord/guild.py b/discord/guild.py index bd2c1d93e..9c713c06a 100644 --- a/discord/guild.py +++ b/discord/guild.py @@ -341,6 +341,7 @@ class Guild(Hashable): self._voice_states: Dict[int, VoiceState] = {} self._threads: Dict[int, Thread] = {} self._state: ConnectionState = state + self._member_count: Optional[int] = None self._from_data(data) def _add_channel(self, channel: GuildChannel, /) -> None: @@ -448,9 +449,10 @@ class Guild(Hashable): return role def _from_data(self, guild: GuildPayload) -> None: - # according to Stan, this is always available even if the guild is unavailable - # I don't have this guarantee when someone updates the guild. - self._member_count: Optional[int] = guild.get('member_count', None) + try: + self._member_count = guild['member_count'] + except KeyError: + pass self.name: str = guild.get('name', '') self.verification_level: VerificationLevel = try_enum(VerificationLevel, guild.get('verification_level'))