如何制作列出机器人所在的所有服务器的命令

时间:2021-01-16 22:56:23

标签: discord discord.js

我尝试制作一个命令,我可以用它来向我展示机器人所在的服务器,但是当我开始制作该命令时,它在我尝试的所有方式中都不起作用,并且总是告诉我其中一件事是未定义或无法读取属性主要是它告诉我 bot 或 guilds 未定义或无法正确读取。

我想创建一个命令,我可以不和谐地使用它来查看我的机器人所在的所有服务器。

我使用命令处理程序,这意味着每个命令都在单独的 js 文件中。

我的 discord 客户端变量设置为“bot”(如代码所示)。

这是命令(servers.js):

1/42

这是命令处理程序/主文件(index.js):

0

还有一个错误:

module.exports = {
    name: 'servers',
    execute(bot, message, args) {
        bot.guilds.cache.forEach(guild => {
            message.channel.send(`Servers: ${guild.name}`);
        })
    }
}

2 个答案:

答案 0 :(得分:0)

您的执行函数需要 3 个参数 execute(bot, message, args),但是当您在主文件中使用它时,您只提供了 2 个参数:command.execute(message, args);

添加缺少的参数应该可以解决这个问题:

command.execute(bot, message, args)

答案 1 :(得分:0)

列出机器人所在的所有服务器的最简单方法是像这样映射所有服务器:

message.channel.send(client.guilds.cache.map(s => s.name))

然后您可以根据需要将其放入您的命令中 - 如果您有任何问题或不起作用,请随时回复。

module.exports = {
name: 'servers',
execute(bot, message, args) {
    message.channel.send(client.guilds.cache.map(s => s.name))
}

如果这不起作用或您有任何其他问题,请随时回复我!