我正在制作一个具有向特定成员发送消息的功能的机器人。
如何将消息发送给特定成员(标识代码为“ 346176733549953029”),而不是使用message.author.send(“我要发送的文本”)将消息发送给特定人员谁输入命令?
我需要类似的东西:
message.user.get("346176733549953029").send("test I want to send");
最终结果应该是该成员从机器人接收到的私人消息,其中包含消息...
答案 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可能无法发送。在这种情况下,您需要抓住被拒绝的承诺。