mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 11:33:30 +01:00
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>
This commit is contained in:
@@ -255,13 +255,14 @@ class ShardingManager extends EventEmitter {
|
|||||||
*/
|
*/
|
||||||
_performOnShards(method, args, shard) {
|
_performOnShards(method, args, shard) {
|
||||||
if (this.shards.size === 0) return Promise.reject(new Error('SHARDING_NO_SHARDS'));
|
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 (typeof shard === 'number') {
|
||||||
if (this.shards.has(shard)) return this.shards.get(shard)[method](...args);
|
if (this.shards.has(shard)) return this.shards.get(shard)[method](...args);
|
||||||
return Promise.reject(new Error('SHARDING_SHARD_NOT_FOUND', shard));
|
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 = [];
|
const promises = [];
|
||||||
for (const sh of this.shards.values()) promises.push(sh[method](...args));
|
for (const sh of this.shards.values()) promises.push(sh[method](...args));
|
||||||
return Promise.all(promises);
|
return Promise.all(promises);
|
||||||
|
|||||||
Reference in New Issue
Block a user