2014-02-16 9 views
0

Я начинающий пользователь java и начинаю стример на Twitch.tv. Я работаю над разработкой бота IRC всю ночь, что упростит модерирование на моем канале (я хочу иметь такой уровень настройки, что использование куки-резака IRC-бота не может дать).Как создать систему опроса для IRC с помощью Pirc

Одна вещь, которая спотыкается, - это создание опроса. Я просмотрел javadocs Pirc, и нет никакой команды, насколько я могу видеть, что проверяет сообщения, отправленные каналом op, что имеет решающее значение для сохранения троллей от создания опросов, и с моими ограниченными знаниями я не знаю, как захватить дополнительные параметры из сообщения.

То, что я хочу это:

!poll <question> <c1> <c2> <c3> <seconds> 

Любая помощь здесь? Я добавлю вас на свой экран благодарности на мой outro для каждого потока.

ответ

0

С моим быстрым взглядом через Javadocs Пирца, это выглядит как метод, который вы хотите это #onMessage (String канал, Строка отправителя, Строки Логина, Строки имени хоста, Строки сообщение)

Отсюда, вы можете получить любую необходимую информацию. Теперь, в зависимости от того, как вы обрабатываете входящие сообщения, вам нужно всего лишь выполнить поиск команды, которая в этом случае является «! Poll», которую вы получите из строки сообщения. Оттуда вы можете еще раз проанализировать информацию и сделать то, что хотите.

Если вы не использовали их уже, то Javadocs для Пирца является расположением здесь: http://www.jibble.org/javadocs/pircbot/index.html

0

Как сказал Jdsfighter, вам нужно использовать метод onMessage(...) из PircBot суперкласса. Этот метод вызывается всякий раз, когда сообщение отправляется на ваш канал. Я предполагаю, что вы поняли это до сих пор, так как заставить бота реагировать на чат - это альфа и омега при создании IRC-бота.

Когда речь идет о модераторах (операторы в терминах IRC), IRC-серверы Twitch ведут себя так, как это не понимается PircBot, и я не был успешным с помощью метода User.isOp(...) из класса User. То, что я нашел преуспевающим, чтобы включать в себя следующее в моем классе Bot (не главный класс):

Set<String> OPs = new HashSet<String>(); 

protected void onUserMode(String channel, String sourceNick, String sourceLogin, String sourceHostname, String recipient) { 
    recipient = recipient.split(" ")[2]; 
    OPs.add(recipient); 
} 

Этот метод вызывается всякий раз, когда вы видите строку, начинающуюся с РЕЖИМЕ в консоли, как этот:

jtv MODE #channel +o moderatorName 

Теперь вам нужно сделать метод, который вызывается всякий раз, когда сообщение получил начинается с "!poll", и проверяет, является ли отправитель сообщения находится в ФОС Набор.

Вот план для вас, чтобы быть помещены в методе onMessage()

if (message.toLowerCase().startsWith("!poll") { 
    if (OPs.contains(sender)) { 
      //TODO Add body 
    } 
} 

Теперь вы просто должны сделать некоторый код, который ловит остаток строки после «! Опрос» и отправляет сообщение обратно канал о различных вариантах опроса.

Вам, очевидно, нужно где-то хранить свои альтернативы и сколько голосов они получают каждый, я предлагаю просто два массива, один String[] и один int[].