Добрый день!
Не пойму почему не запускается бот
1. Запускаю Server. Ввожу номер порта.
2. Запускаю ClientGuiController. Ввожу localhost и номер порта из п.1, ввожу имя пользователя.
Чат запущен и работает. Вижу введенное имя и могу написать сообщение.
Но вот тут загвоздка
3. Запускаю консольного клиента Client.
4. Запускаю бота BotClient.
В GUI версии чата отображается только имя пользователя из п.2
public class BotClient extends Client {
@Override
protected String getUserName() {
int random = (int) (Math.random() * 100);
String botName = "date_bot_" + random;
return botName;
}
@Override
protected boolean shouldSendTextFromConsole() {
return false;
}
@Override
protected SocketThread getSocketThread() {
return new BotSocketThread();
}
public class BotSocketThread extends SocketThread {
@Override
protected void clientMainLoop() throws IOException, ClassNotFoundException {
sendTextMessage( "Привет чатику. Я бот. Понимаю команды: дата, день, месяц, год, время, час, минуты, секунды." );
super.clientMainLoop();
}
@Override
protected void processIncomingMessage(String message) {
ConsoleHelper.writeMessage( message );
if (message.contains( ":" )) {
String[] msg = message.split( ": " );
SimpleDateFormat dateFormat;
switch (msg[1]) {
case "дата":
dateFormat = new SimpleDateFormat( "d.MM.YYYY" );
break;
case "день":
dateFormat = new SimpleDateFormat( "d" );
break;
case "месяц":
dateFormat = new SimpleDateFormat( "MMMM" );
break;
case "год":
dateFormat = new SimpleDateFormat( "YYYY" );
break;
case "время":
dateFormat = new SimpleDateFormat( "H:mm:ss" );
break;
case "час":
dateFormat = new SimpleDateFormat( "H" );
break;
case "минуты":
dateFormat = new SimpleDateFormat( "m" );
break;
case "секунды":
dateFormat = new SimpleDateFormat( "s" );
break;
default:
dateFormat = null;
break;
}
if (dateFormat != null) {
Calendar calendar = Calendar.getInstance();
Date currentDate = calendar.getTime();
String result = "Информация для " + msg[0] + ": ";
result += dateFormat.format( currentDate );
sendTextMessage( result );
}
}
}
}
public static void main(String[] args) {
BotClient botClient = new BotClient();
botClient.run();
}
}