fix: unavalible guild when client isReady

This commit is contained in:
March 7th 2022-11-19 18:00:14 +07:00
parent 54ea46ce4b
commit 53111e56f3

View File

@ -425,7 +425,7 @@ class WebSocketShard extends EventEmitter {
this.emit(ShardEvents.READY); this.emit(ShardEvents.READY);
this.sessionId = packet.d.session_id; this.sessionId = packet.d.session_id;
this.expectedGuilds = new Set(packet.d.guilds.map(d => d.id)); this.expectedGuilds = new Set(packet.d.guilds.filter(d => d.unavailable).map(d => d.id));
this.status = Status.WAITING_FOR_GUILDS; this.status = Status.WAITING_FOR_GUILDS;
this.debug(`[READY] Session ${this.sessionId}.`); this.debug(`[READY] Session ${this.sessionId}.`);
this.lastHeartbeatAcked = true; this.lastHeartbeatAcked = true;
@ -528,23 +528,20 @@ class WebSocketShard extends EventEmitter {
const { waitGuildTimeout } = this.manager.client.options; const { waitGuildTimeout } = this.manager.client.options;
this.readyTimeout = setTimeout( this.readyTimeout = setTimeout(() => {
() => { this.debug(
this.debug( `Shard ${hasGuildsIntent ? 'did' : 'will'} not receive any more guild packets` +
`Shard ${hasGuildsIntent ? 'did' : 'will'} not receive any more guild packets` + `${hasGuildsIntent ? ` in ${waitGuildTimeout} ms` : ''}.\nUnavailable guild count: ${
`${hasGuildsIntent ? ` in ${waitGuildTimeout} ms` : ''}.\nUnavailable guild count: ${ this.expectedGuilds.size
this.expectedGuilds.size }`,
}`, );
);
this.readyTimeout = null; this.readyTimeout = null;
this.status = Status.READY; this.status = Status.READY;
this.emit(ShardEvents.ALL_READY, this.expectedGuilds); this.emit(ShardEvents.ALL_READY, this.expectedGuilds);
}, }, hasGuildsIntent && waitGuildTimeout).unref();
hasGuildsIntent && this.manager.client.user.bot ? waitGuildTimeout : 0,
).unref();
} }
/** /**