From 001676c7a97f4e44c6601dd84aa0354ea94b7c25 Mon Sep 17 00:00:00 2001 From: Alex <46286597+Alex-R-31@users.noreply.github.com> Date: Sun, 24 Jan 2021 10:49:15 +0000 Subject: [PATCH] feat(ShardingManager): Allow b-Eval/fetchClientValues on a specific shard when not all are ready (#5222) Co-authored-by: BennyDiscord <46286597+BennyDiscord@users.noreply.github.com> --- src/sharding/ShardingManager.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sharding/ShardingManager.js b/src/sharding/ShardingManager.js index 9007c5936..dca8c9a8c 100644 --- a/src/sharding/ShardingManager.js +++ b/src/sharding/ShardingManager.js @@ -255,13 +255,14 @@ class ShardingManager extends EventEmitter { */ _performOnShards(method, args, shard) { if (this.shards.size === 0) return Promise.reject(new Error('SHARDING_NO_SHARDS')); - if (this.shards.size !== this.shardList.length) return Promise.reject(new Error('SHARDING_IN_PROCESS')); if (typeof shard === 'number') { if (this.shards.has(shard)) return this.shards.get(shard)[method](...args); return Promise.reject(new Error('SHARDING_SHARD_NOT_FOUND', shard)); } + if (this.shards.size !== this.shardList.length) return Promise.reject(new Error('SHARDING_IN_PROCESS')); + const promises = []; for (const sh of this.shards.values()) promises.push(sh[method](...args)); return Promise.all(promises);