0

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

4

2 に答える 2

0

私は以前にそのようなリレーボットを1つ作成しました。何が必要か話し合ってみましょう。

中継するチャネルでボットがメッセージを受信すると、サーバーとチャネルの組み合わせに基づいて、ボットの配列を使用してそれぞれのチャネルにメッセージが送信されます。

  1. ループで選択されたチャンネルは現在のチャンネルではありません
  2. チャネルは、同期されるチャネルのリストにあります
  3. 無限ループを防ぐため、送信者はボット名の一部ではありません

同じことが、終了、一部、参加、およびその他の必要なものにも当てはまります。

于 2013-02-03T03:20:41.163 に答える
0

1) PircBot はマルチネットワークには適していません。また、いくつかの設計上の問題があります。PircBotX をお勧めします。

2) 本当に PircBot を使用する必要がある場合:

接続ごとに 1 つの PircBot オブジェクトを作成します。
これにより、PircBot ごとに 1 つのスレッドが作成されます。
次に、PircBot インスタンス間でメッセージを配信するバスを作成します。
同期には注意してください。

PircBot オブジェクトの外部にメッセージを送信する方法の例については、それに基づくJawaBotを参照してください。

于 2013-02-03T03:29:31.687 に答える