Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在没有机器人的情况下检测不和谐内容?_C#_Windows_Hook_Discord - Fatal编程技术网

C# 在没有机器人的情况下检测不和谐内容?

C# 在没有机器人的情况下检测不和谐内容?,c#,windows,hook,discord,C#,Windows,Hook,Discord,我现在用C#编码,让我的剃须刀键盘对通知和其他事情做出反应。这是我第一次使用C#,我想知道如何检测不一致通知?自我机器人不是不和谐的规则,其他机器人也不是选项。一个建议是我使用一个windows钩子,但是在四处搜索之后,似乎大多数人都说用C#很难做到这一点。所以我想知道是否有更好的主意,如果没有,我将如何着手做windows钩子 编辑:这是一个WPF应用程序。在您的MessageReceived处理程序中,您只需再添加几行代码即可检查您的帐户(客户端)是否有提及 var-sinetieduser

我现在用C#编码,让我的剃须刀键盘对通知和其他事情做出反应。这是我第一次使用C#,我想知道如何检测不一致通知?自我机器人不是不和谐的规则,其他机器人也不是选项。一个建议是我使用一个windows钩子,但是在四处搜索之后,似乎大多数人都说用C#很难做到这一点。所以我想知道是否有更好的主意,如果没有,我将如何着手做windows钩子


编辑:这是一个WPF应用程序。

在您的MessageReceived处理程序中,您只需再添加几行代码即可检查您的帐户(客户端)是否有提及

var-sinetieduser=message.sinetieduser;
//使用循环
foreach(提及用户中的var用户){
if(user==client.CurrentUser){
//做点什么
}
}
//或者你可以这样做。。。
if(message.Content.Contains(“”){
//做点什么
}
如果您还没有MessageReceived处理程序,则它是来自
DiscordSocketClient
对象的属性。
您可以查看文档中关于为客户端设置事件处理程序的教程

或者,如果您只想在消息前面(或某个特定位置)提及时触发代码,则可以将给定的
SocketMessage
转换为
SocketUserMessage
,然后使用
SocketUserMessage
中的
hasinetiprefix()
方法

(与设置CommandModules的文档类似)

如果您没有阅读原始帖子,我会说“selfbot违反Discord规则”,这意味着我不能使用selfbot,也不能使用Discord API。
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
        }