我目前正在尝试制作一个简单的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/