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

我开始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 class


if(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。


喵喔喔
浏览 129回答 1
1回答

胡子哥哥

while (line != null)&nbsp;{&nbsp; &nbsp;String arr[] = line.split(" ", 2);&nbsp; &nbsp;command = arr[0];&nbsp; &nbsp;message = arr[1];&nbsp; &nbsp;line = reader.readLine();}此循环不断读取文件中的每一行并覆盖commandand的内容message,这意味着当文件中有多个命令时 - 只有最后一行占上风。如果要存储多个命令/消息,则command/变量必须是ormessage类型。然后你可以根据内容进行匹配。java.util.ListHashMap例如。,Map<String,String> msgMap = new HashMap<>();while (line != null)&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp;String arr[] = line.split(" ", 2);&nbsp; &nbsp; &nbsp; &nbsp;if(arr[0]!=null)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;msgMap.put(arr[0],arr[1]);&nbsp; &nbsp; &nbsp; &nbsp;line = reader.readLine();&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java