我正在用Java为IRC编写一个机器人。 我将其加入,自我认证并在bot窗口中显示消息,以便它可以看到该聊天。但是它不会像我想要的那样响应。
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并登录,但它没有响应聊天。
编译没有错误,运行时也没有错误。
有人可以帮忙吗?
答案 0 :(得分:1)
您正在将小写字符串与字符串"PING"
进行比较:
line.toLowerCase().startsWith("PING ")
保证返回false。
也许你是说toUpperCase()
?