From a873ec1e8511829ba95e85bbc9a4074e40c76086 Mon Sep 17 00:00:00 2001 From: GrapeColor <40069549+GrapeColor@users.noreply.github.com> Date: Wed, 14 Jun 2023 20:43:23 +0900 Subject: [PATCH] feat: Add message to send resume event to shard (#9626) * fix(WebSocketManager): Fix not ready after reconnect * fix(WebSocketManager): Move fixes from Ready to Resume * fix: undo changes * feat: Add message to send resume event to shard --------- Co-authored-by: GrapeColor Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- packages/discord.js/src/sharding/Shard.js | 6 ++++++ packages/discord.js/src/sharding/ShardClientUtil.js | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/packages/discord.js/src/sharding/Shard.js b/packages/discord.js/src/sharding/Shard.js index e7d2bea43..d0bccf09d 100644 --- a/packages/discord.js/src/sharding/Shard.js +++ b/packages/discord.js/src/sharding/Shard.js @@ -367,6 +367,12 @@ class Shard extends EventEmitter { return; } + // Shard has resumed + if (message._resume) { + this.ready = true; + return; + } + // Shard is requesting a property fetch if (message._sFetchProp) { const resp = { _sFetchProp: message._sFetchProp, _sFetchPropShard: message._sFetchPropShard }; diff --git a/packages/discord.js/src/sharding/ShardClientUtil.js b/packages/discord.js/src/sharding/ShardClientUtil.js index edb799d01..c1bd4a800 100644 --- a/packages/discord.js/src/sharding/ShardClientUtil.js +++ b/packages/discord.js/src/sharding/ShardClientUtil.js @@ -42,6 +42,9 @@ class ShardClientUtil { client.on(Events.ShardReconnecting, () => { process.send({ _reconnecting: true }); }); + client.on(Events.ShardResume, () => { + process.send({ _resume: true }); + }); break; case 'worker': this.parentPort = require('node:worker_threads').parentPort; @@ -55,6 +58,9 @@ class ShardClientUtil { client.on(Events.ShardReconnecting, () => { this.parentPort.postMessage({ _reconnecting: true }); }); + client.on(Events.ShardResume, () => { + this.parentPort.postMessage({ _resume: true }); + }); break; } }