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) PircBot не подходит для нескольких сетей. Кроме того, у него есть несколько проблем с дизайном. Я бы порекомендовал PircBotX.
2) Если вам действительно нужно использовать PircBot:
Создайте один объект PircBot для каждого соединения.
Это создаст один поток на PircBot.
Затем создайте шину, которая будет распределять сообщения среди экземпляров PircBot.
Будьте осторожны с синхронизацией.
Пример отправки сообщений вне объекта PircBot приведен в разделе JawaBot, который основан на нем.