我使用node.js进行不和谐。
在我发出命令后,我希望我的机器人向特定的人发送直接/私人消息,而不是发出命令的作者(我)。
现在我有人的< @ 000000000000000000> (我认为这称为ID),它是String格式。
例如,此代码 client.sendMessage(message.author,“Hello!”); 向作者发送消息Hello。但我想要一个像 client.sendMessage(message.user(“< @ 000000000000000000>”),“Hello!”);
这样的功能是否存在?
对于背景信息,我正在制作一个狼人游戏机器人,玩家被随机分配一个角色,在我命令w!play之后,我希望玩家能够在DM中接收他们的角色。
答案 0 :(得分:1)
我不会这样写,除非你有理由这样做。
我使用带有git的webhooks进行不和谐,使用主题标签在私人频道上进行通信,(并创建dm频道)因此我可以添加删除/排除规则(对于管理员或其他方式)
(如果您需要Facebook集成,这将不适用于Facebook)
答案 1 :(得分:1)
是的,只需获取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!")})