2017-10-14 76 views
0

我使用Discord.NET版本1.0.2,以澄清一些事情Discord.NET添加反應到SocketMessage

我有一個的messageReceived任務在我的不和諧機器人的應用程序:

private async Task MessageReceived(SocketMessage message) 

這個任務,正如已經可以扣除的那樣,每當收到一條消息在Discord收到這個機器人。然而,我正試圖弄清楚如何向bot收到的消息添加一個反應。在SocketMessage下,沒有方法可以對接收到的消息添加反應。我在網上查找,發現RestUserMessage包含方法AddReactionAsync(IEmote, RequestOptions)。然後我鑄造Socket MessageRestUserMessage爲下我的變量rMessageRestUserMessage作品如此

var rMessage = (RestUserMessage) await message.Channel.GetMessageAsync(message.Id); 

運行AddReactionAsync方法,但參數不正確作爲我可以從我的閱讀在線文檔感知。

IEmote看起來是一個字符串,但字符串不符合此參數,說沒有從String轉換爲IEmote。我試着將這String鑄造成一個IEmote,但沒有奏效。

RequestOptions變量似乎滿足作爲new RequestOptions()完美罰款的參數。

我這個完整的代碼:

private async Task MessageReceived(SocketMessage message) 
{ 
    var rMessage = (RestUserMessage) await message.Channel.GetMessageAsync(message.Id); 
    rMessage.AddReactionAsync(???, new RequestOptions()); 
} 

如何正確地履行這一IEmote參數,或者我如何定義一個變量IEmote。另外,定義一個new RequestOptions()變量也是正確的事情來滿足這個參數。這是否也是通過Discord.NET向消息添加反應的正確方法,如果不是,那麼是什麼?

的研究,我已經做了:

https://github.com/RogueException/Discord.Net/issues/490 
https://discord.foxbot.me/docs/api/Discord.Rest.RestUserMessage.html 
https://discord.foxbot.me/docs/api/Discord.IEmote.html 
https://discord.foxbot.me/docs/api/Discord.RequestOptions.html 

回答

0

如果你頭向Emojipedia,並抓住Unicode版本,如下圖所示: enter image description here

之後被複制,你必須創建一個新的Emoji對象,像這樣:

var YourEmoji = new Emoji(""); 

然後,您可以添加到所需的信息的反應,我要去使用Context.Message

Context.Message.AddReactionAsync(YourEmoji); 
0

未知的解決方案適用於常規的表情,但不會爲特定的行會表情工作。

這是我想出瞭解決方案:

SocketGuildChannel guild = message.Channel as SocketGuildChannel; 
IEmote emote = guild.Emotes.First(e => e.Name = "my-custom-emote"); 
message.AddReactionAsync(emote);