我想创建一个碎片状态命令,告诉我在discord.js中制作的每个碎片的状态吗?

时间:2019-11-25 04:49:47

标签: discord.js

我是一个使用JavaScript编写不一致机器人的机器人开发人员。我想创建一个分片状态命令,其中显示每个分片的状态。我不知道该怎么做,但是如果你们能帮助我,我将不胜感激。

我在学校,所以我可能回答得不够快。所以请忍受我!

1 个答案:

答案 0 :(得分:0)

您可以使用broadcastEval()。例如:

// For each shard, get the shard ID and the number of guilds it owns
let values = await client.shard.broadcastEval(`
    [
        this.shard.id,
        this.guilds.size
    ]
`);
// Make a final string which will be sent in the channel
let finalString = "**SHARD STATUS**\n\n";
// For each shard data
values.forEach((value) => {
    // Add the shard infos to the final string
    finalString += "• SHARD #"+value[0]+" | ServerCount: "+value[1]+"\n";
});
// Send the final string in the channel
message.channel.send(finalString);

这将发送类似的内容:

硬体状态

  • SHARD#0 | ServerCount:98
  • SHARD#1 | ServerCount:95
  • SHARD#2 | ServerCount:97

请注意,您无法使用Discord.js v11访问名副其实的碎片状态,例如“重新连接”或“恢复”。为此,您需要使用master branch