2010-10-02 3 views
1

Я пытаюсь написать ircBot в Java для некоторой практики. Я использую код this в качестве базы. Я пытаюсь понять, как заставить его читать текст с моей консоли, чтобы я мог поговорить с людьми с ботом. Существует один цикл while, который принимает вход от ircсервера и выплевывает его на консоль и отвечает на PING. Я предполагаю, что у меня должен быть другой поток, который берет входные данные от пользователя, а затем использует тот же BufferedWriter, чтобы снова выплюнуть его на ircserver, но я не могу понять, что он понял. Любая помощь была бы потрясающей!Создание клиента irc в Java

+0

Вы должны выслать код, который вы сделали до сих пор (только соответствующая часть) для PING/PONG –

+0

Я не уверен, какую добрую практику вы хотите, и это не отвечает на вопрос, но ... если вы пытаясь написать бот irc, вы действительно должны взглянуть на использование http://www.jibble.org/pircbot.php или http://jerklib.sourceforge.net/ – whaley

+0

Попробуйте ** [JawaBot 2.x] (http://code.google.com/p/jawabot/)** - подключаемое автономное приложение с IRC и веб-интерфейсом, целью которого является включение нескольких функций под одним ботом, сохраняя при этом структуру кода. ** Mavenized **. –

ответ

1

В коде, к которому вы привязались, экземпляры «читателя» и «писателя» действительно подключены к соответственно входящим и исходящим концами двухстороннего сокета, установленного с IRC-сервером.

Таким образом, чтобы получить вход от Пользователя, вы действительно новый новый поток, который каким-то образом принимает команды от пользователя и действует на них. Самой базовой моделью, естественно, было бы использовать System.in для этого, предпочтительно обертывая ее так, чтобы вы могли извлекать целые линейные входы от пользователя и анализировать их как команду.

Чтобы прочитать целые строки из System.in вы могли бы сделать что-то вроде этого:

BufferedReader bin = new BufferedReader(new InputStreamReader(System.in)); 
String line; 
while ((line = bin.readLine()) != null) { 
    // Do stuff 
} 

Вы также могли бы рассмотреть возможность использования одного из библиотек консоли, там для Java, как JLine

0

If вы действительно хотите сделать себе одолжение, я рекомендую (после его экстенсивно) переключиться на pircbot. Pircbot действительно замечательная библиотека и позволит вам запустить бокс IRC всего за несколько минут. Ознакомьтесь с некоторыми примерами на сайте, он очень прост в использовании.

+0

Рекомендую против PircBot. У этого есть неудачный дизайн API, от которого ваше приложение будет быстро расти. Скорее JawaBot или PircBotX. –

Смежные вопросы