1

我正在使用 node.js 进行不和谐。

在我发出命令后,我希望我的机器人向特定的人发送直接/私人消息,而不是发出命令的作者(我)。

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

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

有这样的功能吗?

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

4

2 回答 2

2

是的,只需获取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!")})
于 2017-08-06T02:28:23.017 回答
1

我不会那样写,除非你有具体的理由这样做。

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

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

于 2017-08-05T18:46:34.003 回答