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");
}

Так я подключил его к нескольким сетям, но я хочу, чтобы он пересмотрел сеть и отправлял сообщение каждый раз, когда получает сообщение на этот канал, независимо от того, какая сеть. Имея сообщение быть в этом формате: [<net>] [<sender>] [<message>], Спасибо за твою помощь! У меня есть эта версия: http://www.jibble.org/pircbot.php

2 ответа

Я сделал один такой эстафетный бот раньше. Давайте обсудим, что вам нужно.

Когда бот получает сообщение в канале для ретрансляции, сообщение отправляется с использованием массива ботов на их соответствующие каналы на основе комбинации сервера и канала при условии:

  1. Канал, выбранный в цикле, не является текущим каналом
  2. Канал находится в списке каналов для синхронизации
  3. Отправитель не является частью имени бота, чтобы предотвратить бесконечные циклы

То же самое касается выхода, части, присоединения и всего, что вы хотите.

1) PircBot не подходит для нескольких сетей. Кроме того, у него есть несколько проблем с дизайном. Я бы порекомендовал PircBotX.

2) Если вам действительно нужно использовать PircBot:

Создайте один объект PircBot для каждого соединения.
Это создаст один поток на PircBot.
Затем создайте шину, которая будет распределять сообщения среди экземпляров PircBot.
Будьте осторожны с синхронизацией.

Пример отправки сообщений вне объекта PircBot приведен в разделе JawaBot, который основан на нем.

Другие вопросы по тегам