首页 > 解决方案 > 如何使用分片管理器从 ShardClientUtil 访问 shardArgs?

问题描述

我正在使用 Discord.JS 设置一个 Bot,并希望将shardArgs选项ShardingManagerShardClient. 如何shardArgsShardClientUtil?

// 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

标签: node.jsshardingdiscord.js

解决方案


shardArgs实际上传递了一点:


您可以通过process.argv. (无需IPC)

请注意,第一个条目是可执行文件(节点),第二个是正在执行的文件(Main.js),第三个及以上条目是您的数组。

例如,登录process.argv您的Main.js文件可能会记录:
['usr/bin/node', '/home/bot/Main.js', 'shard args to be passed through']


推荐阅读