Как я могу получить доступ к shardArgs из ShardClientUtil, используя менеджер sharding? - PullRequest
0 голосов
/ 29 декабря 2018

Я настраиваю бота с помощью Discord.JS и хочу передать параметр shardArgs из ShardingManager в ShardClient.Как получить доступ к опции (shardArgs) из ShardClientUtil?

// ShardManager.js
const Discord = require('discord.js');

const Manager = new Discord.ShardingManager('./Main.js', {
     shardArgs: ["shard args to be passed through"]
});

Manager.spawn(1);

Я пытался использовать .fetchClientValues():

// Main.js
const Discord = require('discord.js');
const client = new Discord.Client();

client.shard.fetchClientValues('manager.shardArgs') 
   .then(results => {
    console.log(results);
   })
   .catch(console.error);

client.login("token");

Я пробовал много разных вещей, я даже проверял объект в отладчике, но мне не удалось найти shardArgs, поэтому я не уверен, откуда я должен получить к нему доступ.

Я ожидаюshardArgs будет "shard args to be passed through", в то время как в данный момент я получаю null.

1 Ответ

0 голосов
/ 29 декабря 2018

Фактически shardArgs передается вокруг:


Вы можете получить доступ к массиву в своих шардах с помощьюprocess.argv.(Нет необходимости в IPC)

Помните, что первая запись - это исполняемый (узел), а вторая - исполняемый файл (Main.js), третья и верхняя записи - это ваш массив.

В качестве примера, регистрация process.argv в вашем файле Main.js может записывать:
['usr/bin/node', '/home/bot/Main.js', 'shard args to be passed through']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...