PircBot用java需要帮助创建relay bot吗?

时间:2013-02-03 00:58:48

标签: java irc

我想帮助用PircBot创建一个接力机器人。我希望它为每条消息发送消息到具有该消息的通道。我希望有这个多网络。我发了命令

if (split[0].equalsIgnoreCase(commandPrefix + "addnet")) {
    // sendRawLine("QUIT : joining " + split[1]);
    BrookieBot bot = new BrookieBot();
    bot.setVerbose(true);
    addnet = addnet + " " + split[1];
    try {
        bot.connect(split[1]);
        sendMessage("nickserv", "identify pass");
        bot.joinChannel("#brookies-use-of-bot");

    } catch (NickAlreadyInUseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IrcException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    bot = new BrookieBot();
    quit = 6;

    this.joinChannel("#brookies-use-of-bot");
}

这就是我将它连接到多个网络的方式,但是我希望它能够重新调整网络并在每次收到消息时发送消息,无论网络是什么。 消息采用以下格式:[<net>] [<sender>] [<message>]。谢谢你的帮助!我有这个版本:http://www.jibble.org/pircbot.php

2 个答案:

答案 0 :(得分:0)

我之前做过一个这样的接力机器人。让我们来讨论你需要什么。

当机器人收到要转发的频道中的消息时,根据服务器和频道组合,使用机器人阵列将消息发送到各自的频道,提供:

  1. 循环中选择的频道不是当前频道
  2. 频道位于要同步的频道列表中
  3. 发件人不是机器人名称的一部分,以防止无限循环
  4. 退出,部分,加入以及您想要的任何其他内容也是如此。

答案 1 :(得分:0)

1)PircBot对多网络不利。此外,它有几个设计问题。 我推荐PircBotX。

2)如果你真的必须使用PircBot:

每个连接创建一个PircBot对象 这将为每个PircBot创建一个线程 然后,创建一个将在PircBot实例之间分发消息的总线 小心同步。

有关如何在PircBot对象外部发送消息的示例,请参阅基于它的JawaBot