mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-12 09:33:32 +01:00
Cleanup and reorganise some shard stuff
This commit is contained in:
@@ -41,27 +41,6 @@ class ShardClientUtil {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates a script on all shards, in the context of the Clients.
|
||||
* @param {string} script JavaScript to run on each shard
|
||||
* @returns {Promise<Array>} Results of the script execution
|
||||
*/
|
||||
broadcastEval(script) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const listener = message => {
|
||||
if (!message || message._sEval !== script) return;
|
||||
process.removeListener('message', listener);
|
||||
if (!message._error) resolve(message._result); else reject(makeError(message._error));
|
||||
};
|
||||
process.on('message', listener);
|
||||
|
||||
this.send({ _sEval: script }).catch(err => {
|
||||
process.removeListener('message', listener);
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a Client property value of each shard.
|
||||
* @param {string} prop Name of the Client property to get, using periods for nesting
|
||||
@@ -87,6 +66,27 @@ class ShardClientUtil {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates a script on all shards, in the context of the Clients.
|
||||
* @param {string} script JavaScript to run on each shard
|
||||
* @returns {Promise<Array>} Results of the script execution
|
||||
*/
|
||||
broadcastEval(script) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const listener = message => {
|
||||
if (!message || message._sEval !== script) return;
|
||||
process.removeListener('message', listener);
|
||||
if (!message._error) resolve(message._result); else reject(makeError(message._error));
|
||||
};
|
||||
process.on('message', listener);
|
||||
|
||||
this.send({ _sEval: script }).catch(err => {
|
||||
process.removeListener('message', listener);
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles an IPC message
|
||||
* @param {*} message Message received
|
||||
@@ -94,17 +94,17 @@ class ShardClientUtil {
|
||||
*/
|
||||
_handleMessage(message) {
|
||||
if (!message) return;
|
||||
if (message._eval) {
|
||||
if (message._fetchProp) {
|
||||
const props = message._fetchProp.split('.');
|
||||
let value = this.client;
|
||||
for (const prop of props) value = value[prop];
|
||||
this._respond('fetchProp', { _fetchProp: message._fetchProp, _result: value });
|
||||
} else if (message._eval) {
|
||||
try {
|
||||
this._respond('eval', { _eval: message._eval, _result: this.client._eval(message._eval) });
|
||||
} catch (err) {
|
||||
this._respond('eval', { _eval: message._eval, _error: err });
|
||||
}
|
||||
} else if (message._fetchProp) {
|
||||
const props = message._fetchProp.split('.');
|
||||
let value = this.client;
|
||||
for (const prop of props) value = value[prop];
|
||||
this._respond('fetchProp', { _fetchProp: message._fetchProp, _result: value });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user