java - IRC 自动回复机器人没有响应

标签 java irc

我正在用 Java 为我的 IRC 编写一个机器人。 我让它加入, self 验证,并在机器人窗口中显示消息,以便它可以看到聊天内容。但它不会像我想要的那样响应。


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);

            }

        }

    }



}

基本上,如果用户在聊天中发送 ping 消息,我希望机器人用 pong 进行响应。

我对 Java 相当陌生,这只是一个尝试学习 Java 的简单机器人。就像我说的,我让它加入了我的 IRC 并登录,但它不响应聊天。

编译没有错误,运行也没有错误。

有人可以帮忙吗?

最佳答案

您正在将小写字符串与字符串“PING”进行比较:

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

这保证返回 false。

也许您指的是toUpperCase()

关于java - IRC 自动回复机器人没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58223272/

相关文章:

java - 为什么基于 java 的编辑器通常很慢,因为据说 java 在预热阶段之后很快?

Java JFrame 项目位置/大小

javascript - InspIRCd 安全 WebSocket 连接失败

Python:仅发送前缀时 IRC 机器人崩溃

python - IRC 机器人使循环休眠而不中断主循环

java - 为什么今天开发Android需要与gradle同步?

java - 系统在 Windows 中指向 JDK 但仍然收到错误消息

java - 键盘锁管理器如何删除取消按钮

xmpp - 如何链接 IRC 和 Google Talk?

java - 在Processing中正确读取IRC数据