SmartIrc4net - C# IRC 库






4.92/5 (15投票s)
2004年9月19日
2分钟阅读

143931

1659
用于 .NET 的 IRC 库
引言
我编写 SmartIrc4net
的目的是为了给 .NET/C# 提供一个高级的 IRC API。我很久以前就开始使用 PHP 进行 IRC 编程,我编写了 Net_SmartIRC
。 Net_SmartIRC 是一个 PEAR 类。后来,我对 PHP 的面向对象特性如此有限感到失望。我开始将项目移植到 C++,几周后我停止了,因为有很多东西需要编写(即使是像 string
操作这样的简单事情)。然后我发现了 C#。 我大约花了一到两周的时间移植了 SmartIRC
! 之后,API 变得越来越好,它现在非常棒……所以我们有了 SmartIrc4net
。
对象设计
这个库有一个 3 层 API,允许开发人员选择他们需要的层/特性。 您可以使用任何层编写 IRC 应用程序,问题是您需要多少 IRC 抽象和特性。 你可以选择!
第 1 层:IrcConnection
这一层是一个低级 API,管理 messagebuffer
(用于读写)。 此外,还处理 ping/pong 和连接处理。
第 2 层:IrcCommands (扩展 IrcConnection)
这一层是一个中级 API。 它包含所有 IRC RFC 命令以及一些有用且易于使用的 IRC 方法(例如 Op、Deop、Ban、Unban 等)。
第 3 层:IrcClient (扩展 IrcCommands)
这一层是一个高级 API,包含您进行 IRC 编程所需的所有特性,例如频道同步(使用带有模式/主题/用户的对象跟踪频道)、用户同步(用于昵称、缩进、主机、真实姓名、服务器和跳跃计数)。 这一层完全由事件驱动,所有接收到的数据都被解析成不同的事件,每个事件都有特殊的参数(这使得使用接收到的 IRC 数据非常容易,而无需每次都检查 RFC!)。
如何使用 SmartIrc4net
这是一个使用高级 API 的库的例子
using System;
using System.Collections;
using Meebey.SmartIrc4net;
using Meebey.SmartIrc4net.Delegates;
public class Test
{
public static IrcClient irc = new IrcClient();
public static void OnQueryMessage(Data ircdata)
{
switch (ircdata.MessageEx[0]) {
case "join":
irc.Join(ircdata.MessageEx[1]);
break;
case "part":
irc.Part(ircdata.MessageEx[1]);
break;
case "say":
irc.Message(SendType.Message, MessageEx[1], MessageEx[2]);
break;
}
}
public static void Main(string[] args)
{
irc.SendDelay = 200;
irc.AutoRetry = true;
irc.ChannelSyncing = true;
irc.OnQueryMessage += new MessageEventHandler(OnQueryMessage);
string[] serverlist;
serverlist = new string[] {"irc.ircnet.net"};
int port = 6667;
if(irc.Connect(serverlist, port) == true) {
irc.Login("SmartIRC", "Stupid Bot");
irc.Join("#smartirc");
irc.Message(SendType.Message, "#smartirc", "test message");
irc.Message(SendType.Action, "#smartirc", " thinks this is cool");
irc.Message(SendType.Notice, "#smartirc", "SmartIrc4net rocks!");
}
irc.Listen();
irc.Disconnect();
} else {
System.Console.WriteLine("couldn't connect!");
}
}
}
连接到您最喜欢的 IRC 服务器,在源代码中设置 IRC 服务器。 加入 #smartirc
频道。 编译源代码,生成机器人。 机器人应该会发送三条消息,之后,给他发送一条私人消息:“/msg smartirc say #smartirc hello!
”。
官方项目页面
SmartIrc4net
是一个您可以在 这里 找到的独立项目。 在那里,您可以获得当前版本,可以在论坛上报告错误或发布帮助请求。 欢迎评论、建议和批评!
玩得开心
就这样,祝您编码愉快! ;)
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。