无法读取未定义的“发送”属性

时间:2021-02-22 02:28:16

标签: discord discord.js

这是我的代码:

  let userdd =  bot.users.cache.get(args[1])
let messaged = args[2]
if(!messaged) return message.channel.send("Please specify a message!")
userdd.send(messaged)

但它有这个错误: Cannot read the property of "send" of undefined

我尝试了其他方法,例如:

  let userdd =  bot.users.fetch(args[1])
userdd.send(messaged)

  let userdd =  bot.users.fetch(args[1])
let person = bot.users.cache.get(userdd.id)
person.send(messaged)

两者都给出这个错误:"Cannot send messages to this user" 我在不同的人身上尝试了这个命令,这些人有 DM 并且有机器人的相互服务器,但仍然存在那个错误。

知道如何修复/有其他方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

正如错误消息所暗示的,undefined 没有属性发送。这意味着 userdd 变量未定义。尝试 bot.users.fetch(args[1]).then(person => { person.send(messaged); }); 是正确的,但这是一个承诺,因此您必须这样做:

.then

.cache.get() 不需要 .fetch 因为它几乎是即时的,因为它被缓存,而 {{1}} 需要很长时间,您必须等待用户实际在您对用户执行任何操作之前被发现。