From 65d48302ad69e334661c4579f63aaff0af92f63f Mon Sep 17 00:00:00 2001 From: Steve C Date: Wed, 14 Apr 2021 22:10:47 -0400 Subject: [PATCH] Fix guild.chunk() not working on evicted guilds If you're trying to chunk a guild that the bot is not in, it'll just hang on the chunk coro forever. It's weird, I know. --- discord/guild.py | 3 ++- discord/state.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/discord/guild.py b/discord/guild.py index a0bcd2370..3f63d8739 100644 --- a/discord/guild.py +++ b/discord/guild.py @@ -2218,7 +2218,8 @@ class Guild(Hashable): if not self._state._intents.members: raise ClientException('Intents.members must be enabled to use this.') - return await self._state.chunk_guild(self, cache=cache) + if not self._state.is_guild_evicted(self): + return await self._state.chunk_guild(self, cache=cache) async def query_members(self, query=None, *, limit=5, user_ids=None, presences=False, cache=True): """|coro| diff --git a/discord/state.py b/discord/state.py index e6f26def9..593c806b1 100644 --- a/discord/state.py +++ b/discord/state.py @@ -768,6 +768,9 @@ class ConnectionState: return self._add_guild_from_data(data) + def is_guild_evicted(self, guild) -> bool: + return guild.id not in self._guilds + async def chunk_guild(self, guild, *, wait=True, cache=None): cache = cache or self.member_cache_flags.joined request = self._chunk_requests.get(guild.id)