我开始TwitchBot在java. 机器人工作正常,所以我的想法是用变量替换硬编码命令。命令和消息保存在文本文件中。BufferedReader班级:try { reader = new BufferedReader(new FileReader("censored//lucky.txt")); String line = reader.readLine(); while (line != null) { String arr[] = line.split(" ", 2); command = arr[0]; message = arr[1]; line = reader.readLine(); } reader.close(); } catch (IOException e) { e.printStackTrace(); }我的片段bot/command classif(message.toLowerCase().contains(BufferedReader.command)) { sendMessage(channel, BufferedReader.message); }我的.txt文件:!test1 Argument1 Argument2!test2 Argument1 Argument2!test3 Argument1 Argument2!test4 Argument1 Argument2当我的文本文档中只有 1 行时一切正常command+message / line,但是当有多行时,我无法访问Twitch Chat. 我知道,命令是这样堆叠的!test1 !test2 !test3 !test。所以我的问题是,我该如何避免这种情况?我担心的是,在我的实际代码中!test3使用了来自我的命令的消息!test1。
1 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
while (line != null)
{
String arr[] = line.split(" ", 2);
command = arr[0];
message = arr[1];
line = reader.readLine();
}
此循环不断读取文件中的每一行并覆盖commandand的内容message,这意味着当文件中有多个命令时 - 只有最后一行占上风。
如果要存储多个命令/消息,则command/变量必须是ormessage类型。然后你可以根据内容进行匹配。java.util.ListHashMap
例如。,
Map<String,String> msgMap = new HashMap<>();
while (line != null)
{
String arr[] = line.split(" ", 2);
if(arr[0]!=null)
msgMap.put(arr[0],arr[1]);
line = reader.readLine();
}
添加回答
举报
0/150
提交
取消