Jar*_*ile 2 c# discord discord.net
我正在使用Discord.NET版本1.0.2清理问题
我的Discord Bot应用程序中有一个MessageReceived任务:
private async Task MessageReceived(SocketMessage message)
Run Code Online (Sandbox Code Playgroud)
可以推断,此任务每次在Discord中接收到此机器人的消息时运行。但是,我试图弄清楚如何对机器人已收到的消息进行响应。在此之下SocketMessage,没有任何方法可以对收到的消息添加反应。我在网上看了看,发现其中RestUserMessage包含该方法AddReactionAsync(IEmote, RequestOptions)。然后我铸造Socket Message的RestUserMessage作为如此
var rMessage = (RestUserMessage) await message.Channel.GetMessageAsync(message.Id);
Run Code Online (Sandbox Code Playgroud)
AddReactionAsync在我的变量下运行该方法rMessage可以RestUserMessage工作,但是从网上阅读和文档中可以看出,参数没有正确使用。
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());
}
Run Code Online (Sandbox Code Playgroud)
如何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
Run Code Online (Sandbox Code Playgroud)
如果您转到Emojipedia,并获取unicode版本,如下所示:

复制之后,您必须创建一个新Emoji对象,如下所示:
var YourEmoji = new Emoji("");
Run Code Online (Sandbox Code Playgroud)
然后,您可以对所需的消息添加反应,我将使用Context.Message:
Context.Message.AddReactionAsync(YourEmoji);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6349 次 |
| 最近记录: |