Speed up chunking for guilds with presence intent enabled
This commit is contained in:
parent
92e1816114
commit
0ec72660cf
@ -303,6 +303,10 @@ class ConnectionState:
|
||||
self._add_guild(guild)
|
||||
return guild
|
||||
|
||||
def _guild_needs_chunking(self, guild):
|
||||
# If presences are enabled then we get back the old guild.large behaviour
|
||||
return self._fetch_offline and not guild.chunked and not (self._intents.presences and not guild.large)
|
||||
|
||||
def _get_guild_channel(self, data):
|
||||
channel_id = int(data['channel_id'])
|
||||
try:
|
||||
@ -356,7 +360,8 @@ class ConnectionState:
|
||||
except asyncio.TimeoutError:
|
||||
break
|
||||
else:
|
||||
if self._fetch_offline:
|
||||
|
||||
if self._guild_needs_chunking(guild):
|
||||
future = await self.chunk_guild(guild, wait=False)
|
||||
states.append((guild, future))
|
||||
else:
|
||||
@ -781,7 +786,7 @@ class ConnectionState:
|
||||
return
|
||||
|
||||
# check if it requires chunking
|
||||
if self._fetch_offline:
|
||||
if self._guild_needs_chunking(guild):
|
||||
asyncio.ensure_future(self._chunk_and_dispatch(guild, unavailable), loop=self.loop)
|
||||
return
|
||||
|
||||
@ -1053,7 +1058,7 @@ class AutoShardedConnectionState(ConnectionState):
|
||||
except asyncio.TimeoutError:
|
||||
break
|
||||
else:
|
||||
if self._fetch_offline:
|
||||
if self._guild_needs_chunking(guild):
|
||||
# Chunk the guild in the background while we wait for GUILD_CREATE streaming
|
||||
future = asyncio.ensure_future(self.chunk_guild(guild))
|
||||
else:
|
||||
|
Loading…
x
Reference in New Issue
Block a user