我目前正在尝试制作一个简单的IRC Gui客户。我使用SmartIrc4net作为基础,因为它似乎是所有支持中的最支持的,可在以下位置找到:http://www.codeproject.com/Articles/8323/SmartIrc4net-the-C-IRC-library

现在我遇到的问题是动作命令。例如,要使自己成为一名歌剧演员,您可以输入

/ oper管理员密码或要更改的host,将是/ sethost mynewhost

我的问题是,当我通过文本框传递该值时,而不是让我成为管理员或更改主机。我的输入只是在聊天中显示为文本。

这是我的代码:

        string[] serverlist;
        serverlist = new string[] { "mydomain.com" };
        int port = 6667;
        string channel = "#MyChannel#";
        try
        {
            irc.Connect(serverlist, port);
            irc.Login("SmartIRC", "SmartIrc4net Test Bot");
            irc.RfcJoin(channel);

                irc.SendMessage(SendType.Message, channel, "/oper admin mypass");
                irc.SendMessage(SendType.Action, channel, "/sethost mynewhost");

            irc.Listen();


但是,当我传递这些值时,它所做的只是显示我在聊天中键入的内容,而没有实际使我成为操作员或更改我的sethost。

无论如何,实际上我可以使它将命令传递给IRC服务器,而不仅仅是在聊天中显示原始文本吗?

任何帮助,将不胜感激,谢谢

最佳答案

这是因为您正在显式发送消息。 IRC本身没有/commands的概念,这是在客户端中完成的。您正在做的只是发送带有恰好以/开头的特定文本的消息。即服务器收到的是

PRIVMSG #channel :/oper admin mypass


代替

OPER admin mypass


您只需要找出一种将原始IRC命令发送到服务器的方法即可。不过,您链接到的页面在那部分上没有提供太多文档。但从各层来看,它应该位于第2层或第1层。

关于c# - 在我的IRC客户端中使用命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10515903/

10-13 08:28