如何让不和谐的 js 机器人不向作者发送 direct/private 消息?

How to make a discord js bot send direct/private message not to author?

我正在使用 node.js 进行 discord。

发出命令后,我希望我的机器人将 direct/private 消息发送给特定的人,而不是发出命令的作者(我)。

现在我有此人的 <@000000000000000000>(我认为这称为 ID),它是字符串格式。

例如,此代码 client.sendMessage(message.author, "Hello!"); 向作者发送消息 Hello。但我想要一个像 client.sendMessage(message.user("<@000000000000000000>"), "Hello!");

有这样的功能吗?

关于背景信息,我正在制作一个狼人游戏机器人,其中玩家被随机分配一个角色,在我命令 w!play 之后,我希望玩家在 DM 中接收他们的角色。

除非你有明确的理由,否则我不会那样写。

我已经使用带有 git 的 webhooks 来处理不和谐,使用主题标签在私人频道上进行通信,(并创建 dm 频道)因此我可以为 deletion/exclusions 添加规则(对于管理员或其他人) )

(如果您需要 Facebook 集成,这不适用于 Facebook)

是的,只需获取 user 对象并发送给它。您将需要他们的 ID,因此解析出字符串“<@0000>”的 ID 部分。此外,sendMessage 已弃用。使用 channel.send()。以用户为例:

let str = "<@123456789>"; //Just assuming some random tag.

//removing any sign of < @ ! >... 
//the exclamation symbol comes if the user has a nickname on the server.
let id = str.replace(/[<@!>]/g, '');

client.fetchUser(id)
    .then(user => {user.send("Hello I dmed you!")})