2013-02-03 28 views
0

我想用PircBot创建一个中继机器人。我希望它为每个消息发送消息到具有该消息的通道。我希望有这个多网络。我做了一个命令与Java的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"); 
} 

这就是我做它连接到多个网络,但我希望它reconise网和每次临危消息到该频道,无论什么样的网络时间发送消息。 使消息具有以下格式:[<net>] [<sender>] [<message>]。谢谢你的帮助!我有这个版本:http://www.jibble.org/pircbot.php

回答

0

我做过一个这样的中继机器人之前。我们来讨论一下你需要什么。

当机器人临危在一个信道的消息进行中继,使用基于服务器和信道组合的机器人到它们各自的通道的阵列,提供在消息被发送:

  1. 信道在所选择的环不是当前通道
  2. 的信道是要同步通道
  3. 发送者的列表不是机器人名称的一部分,以防止无限循环

退出,部分,加入和其他任何你想要的都是一样的。

0

1)PircBot不适合多网络。另外,它有几个设计问题。 我会推荐PircBotX。

2)如果你真的要使用PircBot:

创建每个连接一个PircBot对象。
这将为每个PircBot创建一个线程。
然后,创建一个将在PircBot实例中分发消息的总线。
请注意同步。

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