我目前正在使用C#进行编码,以使我的razer键盘对通知和其他内容作出反应。这是我第一次使用C#,我想知道如何检测不和谐通知? Selfbots再次成为Discord规则,其他机器人不是一种选择。一个建议是我使用了一个Windows钩子,但是在搜索之后,似乎大多数人都说你不能在C#中轻松做到这一点。所以我想知道是否有更好的想法,如果没有,我将如何做Windows钩子?
编辑:这是一个WPF应用程序。
答案 0 :(得分:0)
在您的messageRecieved处理程序中,您只需添加几行代码来检查您帐户(客户端)的提及。
var mentionedUser = message.MentionedUsers;
//Using a loop
foreach(var user in mentionedUser) {
if(user == client.CurrentUser) {
//Do something
}
}
//Or you could do it...
if(message.Content.Contains("<@YOURID>")) {
//Do something
}
如果您还没有messageRecieved Handler,那么它是来自DiscordSocketClient
对象的属性。
您可以查看有关为客户端here设置事件处理程序的文档教程。
或者,如果您只想在提及仅位于邮件的前面(或特定位置)时触发代码,则可以将SocketMessage
转换为SocketUserMessage
,然后使用HasMentionPrefix()
中的SocketUserMessage
方法
(类似于文档设置CommandModule的方式)