IRC автоответчик бот не отвечает - PullRequest
1 голос
/ 03 октября 2019

Я пишу бота на Java для моего IRC. У меня есть присоединение, самоутверждение и отображение сообщений в окне ботов, чтобы он мог видеть эту болтовню. НО это не будет отвечать, как я хочу.


import java.io.*;

import java.net.*;



public class TwmlBot {



    public static void main(String[] args) throws Exception {


        String server = "example.com";

        String nick = "TWML_Bot";

        String login = "TWML_Bot";

        String passwd = "examplepassword";

        String channel = "#welcome";


        Socket socket = new Socket(server, 6667);

        BufferedWriter writer = new BufferedWriter(

                new OutputStreamWriter(socket.getOutputStream( )));

        BufferedReader reader = new BufferedReader(

                new InputStreamReader(socket.getInputStream( )));


        writer.write("NICK " + nick + "\r\n");

        writer.write("USER " + login + " 8 * : Java IRC Bot\r\n");

        writer.flush( );


        String line = null;

        while ((line = reader.readLine( )) != null) {

            if (line.indexOf("004") >= 0) {.

                break;

            }

            else if (line.indexOf("433") >= 0) {

                System.out.println("Nickname is already in use.");

                return;

            }

        }


        writer.write("JOIN " + channel + "\r\n");

        writer.write("identify " + passwd + "\r\n");

        writer.flush( );


        while ((line = reader.readLine( )) != null) {

            if (line.toLowerCase().startsWith("PING ")) {

                writer.write("PONG " + line.substring(5) + "\r\n");

                System.out.println(line);

                writer.flush( );

            }

            else {

                System.out.println(line);

            }

        }

    }



}

В основном, если пользовательские сообщения пингуются в чате, я хочу, чтобы бот отвечал понгом.

Я довольно новичок в Java, и этопросто бот, чтобы попытаться выучить Java. Как я уже сказал, он присоединился к IRC и вошел в систему, но не отвечает на чат.

Нет ошибок при компиляции и ошибок при запуске.

Кто-нибудь может помочь?

1 Ответ

1 голос
/ 03 октября 2019

Вы сравниваете строчную строку со строкой "PING":

line.toLowerCase().startsWith("PING ")

Это гарантированно вернет false.

Может быть, вы имели в виду toUpperCase()?

...