2017-08-05 49 views
-1

我使用node.js來爭執。如何讓一個不和諧的js bot發送直接/私人信息而不是作者?

在我發出命令之後,我想讓我的機器人向特定的人員發送直接/私人消息,而不是發出命令的作者(我)。

現在我有人的< @ 000000000000000000>(我認爲這稱爲ID),它是以字符串格式。

例如,此代碼client.sendMessage(message.author,「Hello!」);向作者發送消息Hello。但我想要一個像client.sendMessage(message.user(「< @ 000000000000000000」),「Hello!」);

這樣的函數是否存在?

有關背景信息,我正在製作一個狼人遊戲機器人,其中玩家隨機分配角色,在命令w!play之後,我希望玩家在DM中接受角色。

回答

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!")}) 
1

我不會那樣寫,除非你有明確的理由。

我已經使用網絡掛接與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