如何让一个不和谐的js bot发送直接/私人信息而不是作者?

问题描述:

我使用node.js来争执。如何让一个不和谐的js bot发送直接/私人信息而不是作者?

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

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

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

这样的函数是否存在?

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

是的,只是得到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!")}) 

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

我已经使用网络挂接与GIT为不和谐,使用#标签上的私人信道进行通信,(并创建DM信道),因此我可以在删除/排除规则添加(适用于管理员或其他)

(此将不适用于Facebook,如果你需要Facebook集成)

+0

(你不需要Python或PHP的使用知识,您可以用节点在这种情况下写网络挂接)与一个ID,因此我会写用户VS一个字符串,因为你可以指定它是一个机器人还是一个人,并且以后可以找到任何hashtag(频道),bot或用户,所以你不需要*一个bool,但显然这取决于你。 – kbrackson

+0

所以我需要使用webhooks?我可以有一个hashtag示例代码吗? – ricola

+0

本文将介绍最好的方法,并为您提供关于其用法的简要介绍。对我来说,使用比不和谐的字符串格式更简单,我认为它可以用于贬低和升级。我知道这件事的唯一原因是因为我想整合松懈,这就是我如何去做的。 https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks **请注意,您可以在不使用git的情况下整合webhooks,但本教程希望您这样做。我不会说任何一种方式都好或坏,当然都有好处和缺点。 :) – kbrackson