aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/state.py18
1 files changed, 6 insertions, 12 deletions
diff --git a/discord/state.py b/discord/state.py
index 10208d3b..5c9f7df4 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -1026,25 +1026,19 @@ class AutoShardedConnectionState(ConnectionState):
launch.set()
await asyncio.sleep(2.0 * self.shard_count)
- if self._fetch_offline:
- guilds = sorted(self._ready_state.guilds, key=lambda g: g[0].shard_id)
+ guilds = sorted(self._ready_state.guilds, key=lambda g: g[0].shard_id)
- for shard_id, sub_guilds_info in itertools.groupby(guilds, key=lambda g: g[0].shard_id):
- sub_guilds, sub_available = zip(*sub_guilds_info)
+ for shard_id, sub_guilds_info in itertools.groupby(guilds, key=lambda g: g[0].shard_id):
+ sub_guilds, sub_available = zip(*sub_guilds_info)
+ if self._fetch_offline:
await self.request_offline_members(sub_guilds, shard_id=shard_id)
- for guild, unavailable in zip(sub_guilds, sub_available):
- if unavailable is False:
- self.dispatch('guild_available', guild)
- else:
- self.dispatch('guild_join', guild)
- self.dispatch('shard_ready', shard_id)
- else:
- for guild, unavailable in self._ready_state.guilds:
+ for guild, unavailable in zip(sub_guilds, sub_available):
if unavailable is False:
self.dispatch('guild_available', guild)
else:
self.dispatch('guild_join', guild)
+ self.dispatch('shard_ready', shard_id)
# remove the state
try: