Discord.js V12 TypeError:无法读取未定义的属性“发送”

时间:2021-01-06 14:39:54

标签: node.js discord.js

在为我的机器人发出命令时遇到错误

"TypeError: Cannot read property 'send' of undefined"

当使用命令时,因为完整的代码有点长,我不想包含不必要的细节,我认为问题出在这一行

client.users.cache.get(customer).send(`Your order has been claimed and will be delivered soon.`);

因为当我删除该行时命令正常工作,但我不太确定它有什么问题,顺便说一句,“客户”在代码的开头定义为

let customer = message.author.id

2 个答案:

答案 0 :(得分:0)

老实说,我很困惑为什么您会得到 2 个不同的用户对象,而您已经拥有一个 message.author

如果您不知道,message.author 方法会返回您所指消息的创建者的 User Object,因此为什么要使用消息作者对象的 id 创建另一个用户对象至少在我看来,你已经没有意义了。

您可以非常简单地改为:

message.author.send('...')

这会向原始消息创建者发送 DM。 此外,如果仍然发生这种情况,请尝试控制台日志记录 message.author,因为您的回调可能会搞砸。如果此问题持续发生,我很乐意为 Discord (Bqre#0001) 提供帮助 - 如果您这样做,请先控制台记录并准备好向我发送完整错误。

答案 1 :(得分:0)

看起来您尝试向其发送消息的用户未缓存或不存在,请确保“客户”实际上是一个 ID 或尝试缓存公会中的所有用户以查看是否可以解决问题.