65.9K
CodeProject 正在变化。 阅读更多。
Home

SmartIrc4net - C# IRC 库

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.92/5 (15投票s)

2004年9月19日

2分钟阅读

viewsIcon

143931

downloadIcon

1659

用于 .NET 的 IRC 库

引言

我编写 SmartIrc4net 的目的是为了给 .NET/C# 提供一个高级的 IRC API。我很久以前就开始使用 PHP 进行 IRC 编程,我编写了 Net_SmartIRCNet_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 是一个您可以在 这里 找到的独立项目。 在那里,您可以获得当前版本,可以在论坛上报告错误或发布帮助请求。 欢迎评论、建议和批评!

玩得开心

就这样,祝您编码愉快! ;)

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.