在为我的机器人发出命令时遇到错误
"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
答案 0 :(得分:0)
老实说,我很困惑为什么您会得到 2 个不同的用户对象,而您已经拥有一个 message.author
。
如果您不知道,message.author
方法会返回您所指消息的创建者的 User Object
,因此为什么要使用消息作者对象的 id 创建另一个用户对象至少在我看来,你已经没有意义了。
您可以非常简单地改为:
message.author.send('...')
这会向原始消息创建者发送 DM。
此外,如果仍然发生这种情况,请尝试控制台日志记录 message.author
,因为您的回调可能会搞砸。如果此问题持续发生,我很乐意为 Discord (Bqre#0001) 提供帮助 - 如果您这样做,请先控制台记录并准备好向我发送完整错误。
答案 1 :(得分:0)
看起来您尝试向其发送消息的用户未缓存或不存在,请确保“客户”实际上是一个 ID 或尝试缓存公会中的所有用户以查看是否可以解决问题.