我想让一个不和机器人通过id向某人发送dm


if (message.content === "!test"){
client.users.cache.get('id').send('message');
console.log("message sent")
}

这个方法不起作用,我找不到任何其他有效的方法是拼写错误还是这种方法过时了?

实际上我自己也遇到过一次这个错误。你可能会面临两个问题:

  • 用户尚未被discord.js缓存
  • 尚未为该用户打开DMChannel

要解决第一个问题,您必须先获取用户,然后再使用它。请记住,这是一个Promise,因此您必须使用await才能完成它,或者使用.then(...)

const user = await client.users.fetch('id')

一旦通过用户ID获取了用户,就可以创建一个DMChannel,它再次返回一个promise。

const dmChannel = await user.createDM()

然后你可以像正常一样使用你的频道

dmChannel.send('Hello!')

尝试创建这样的变量:

var user = client.users.cache.find(user => user.id === 'USER-ID')

然后这样做:

user.send('your message')

最新更新