Fix issue with shard_ready not dispatching when not fetching offline

This commit is contained in:
NCPlayz 2020-01-13 21:32:39 +00:00 committed by Rapptz
parent 6cdda4a320
commit f95ccf53e0

View File

@ -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: