为了账号安全,请及时绑定邮箱和手机立即绑定

Java TwitchBot/PircBot 无法读取 .txt 文件中的命令,就像它必须做的那样

Java TwitchBot/PircBot 无法读取 .txt 文件中的命令,就像它必须做的那样

喵喔喔 2023-05-17 15:46:38
我开始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();

    }


查看完整回答
反对 回复 2023-05-17
  • 1 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信