Discord.js - 即使定义有

时间:2018-01-16 02:14:12

标签: javascript discord discord.js

制作不和谐机器人。除-!prefix的一个命令外,一切正常。 -!是前缀,命令采用args并更改服务器的前缀。

在我详细讨论这个问题之前,这里是机器人的代码,也许我只是在竞争中做错了什么:Hastebin Link

根据控制台:Console Log

,此处的错误位于第52行

我很困惑如何处理“未定义”。我尝试使用message.guild.id属性作为变量,也尝试使用代码中显示的属性。我已经尝试将它移动到多个地方,尽管它甚至注册的唯一地方是前缀命令的INSIDE(由于此错误,它当前已被破坏。)

任何人都有任何修复?我不是那么多关于整个JavaScript的专家,因为我从Python和常规Java中找到了。

2 个答案:

答案 0 :(得分:2)

line 52的代码目前是:

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

您目前正在将User个对象传递到应该收到.get()的{​​{1}}。

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

id or snowflake

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

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

现在你说你已经

  

尝试使用var server = message.guild.id; 属性作为变量,以及代码中显示的属性。

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

答案 1 :(得分:0)

根据the discord.js documentationbot.guilds由每个公会的ID编制索引。 message.authorUser对象,而不是公会ID。您不能将User对象放入bot.guilds.get并期望它可以工作;它只接受公会ID。

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