我想要一个不和谐的机器人通过他们的 id 向某人发送 dm

时间:2021-03-30 16:23:42

标签: discord discord.js

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

const dmChannel = await user.createDM()

然后您可以像往常一样使用您的频道

dmChannel.send('Hello!')

答案 1 :(得分:0)

尝试创建一个这样的变量:

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

然后这样做:

user.send('your message')