如何向特定成员发送消息?

时间:2019-06-20 20:03:05

标签: javascript node.js discord.js

我正在制作一个具有向特定成员发送消息的功能的机器人。

如何将消息发送给特定成员(标识代码为“ 346176733549953029”),而不是使用message.author.send(“我要发送的文本”)将消息发送给特定人员谁输入命令?

我需要类似的东西:

message.user.get("346176733549953029").send("test I want to send");

最终结果应该是该成员从机器人接收到的私人消息,其中包含消息...

1 个答案:

答案 0 :(得分:-1)

您可以通过用户ID从客户端的用户缓存Client.users中检索用户。但是,不能保证每个用户都始终被缓存,因此您可以使用Client.fetchUser()从Discord获取用户。请记住,它返回一个Promise

您可以使用User.send()(或GuildMember.send())向用户发送消息。

放在一起...

// Async context needed for 'await' keyword.
// Assuming 'client' is the instance of your Discord Client.

try {
  // Retrieve the user from the client's cache.
  // If they haven't been cached yet, fetch them.
  const userID = '189855563893571595';
  const user = client.users.get(userID) || await client.fetchUser(userID);

  // Send the user a DM.
  await user.send('Hello.');
} catch(err) {
  console.error(err);
}

请注意,由于用户的特定隐私设置,DM可能无法发送。在这种情况下,您需要抓住被拒绝的承诺。