Discord.js - 公会 ID 未定义,即使有定义

Discord.js - Guild ID is undefined even though definition is there

制作一个不和谐的机器人。一切正常,除了 -!prefix 的一个命令。 -! 作为前缀,命令获取参数并更改服务器的前缀。

在详细介绍这件事之前,这是机器人的代码,也许我只是在常量中做错了什么:Hastebin Link

这里的错误在第52行,根据控制台:Console Log

我很困惑如何处理这个 "undefined." 我试过使用 message.guild.id 属性 作为变量,以及代码中显示的变量.我试过将它移动到多个地方,尽管它甚至注册的唯一地方是前缀命令的内部(由于这个错误目前已损坏。)

有人有任何修复吗?我不是整个 JavaScript 方面的专家,因为我是从 Python 和常规 Java.

过来的

根据the discord.js documentationbot.guilds由每个公会的ID索引。 message.author 是一个 User 对象,不是公会 ID。您不能将 User 对象放入 bot.guilds.get 并期望它起作用;它只接受公会 ID。

要获取发送邮件的服务器,只需执行 message.guild

您在 line 52 的代码目前是:

var server = bot.guilds.get(message.author).id

您目前正在将一个 User 对象传递到 .get() 中,它应该接收一个 id or snowflake

考虑到这一点,您的代码应如下所示:

var server = bot.guilds.get(message.guild.id).id;

但是,这有点过分,因为您可以简单地将其缩短为:

var server = message.guild.id;

现在你说你已经

tried using the message.guild.id property as the variable, and also the one shown on the code.

我不确定你的意思是不是我刚才建议的,但如果是的话请通知我。