Minecraft Beta1.7.3模组开发:UUID文件转字符串并匹配判定
解决Minecraft Beta1.7.3模组中读取文件内容并判断UUID的问题
听起来你已经搞定了披风显示的核心逻辑和文件下载,就差把整个文件读成字符串来匹配UUID这一步了——别担心,这个问题其实有很简洁的解决办法,完全不用逐行循环踩坑。
核心思路
既然不想逐行读取,那咱们直接把整个文件内容一次性读成字符串,然后用String.contains()方法直接判断UUID是否存在就行,这样既避免了循环中布尔值被重置的问题,代码也更简洁。
具体实现步骤
首先,在你现有的文件下载代码之后,添加读取文件内容并判断UUID的逻辑。这里推荐用Java NIO的Files类来读取,代码非常简洁:
1. 定义玩家UUID变量
假设你已经通过Mojang API获取到了玩家的UUID,存放在playerUuid变量中:
String playerUuid = "这里替换为你通过API获取到的玩家UUID"; boolean isStaff = false; boolean isContestWinner = false;
2. 读取文件内容并判断
在你的try-catch块内部(下载完成后),添加以下代码:
try { // 读取staff.txt的全部内容为字符串(指定UTF-8编码避免乱码) String staffContent = Files.readString(Paths.get(capeInfo + "staff.txt"), StandardCharsets.UTF_8); // 判断UUID是否存在,直接赋值布尔值 isStaff = staffContent.contains(playerUuid); // 同理处理contest.txt String contestContent = Files.readString(Paths.get(capeInfo + "contest.txt"), StandardCharsets.UTF_8); isContestWinner = contestContent.contains(playerUuid); } catch (IOException e) { e.printStackTrace(); // 读取失败时保持布尔值为false,避免影响披风逻辑 }
兼容低版本Java(如果需要)
如果你的开发环境使用Java 8及以下,Files.readString()方法还未被引入,可以用下面的代码替代,效果完全一致:
// Java 8兼容版本 String staffContent = new String(Files.readAllBytes(Paths.get(capeInfo + "staff.txt")), StandardCharsets.UTF_8);
优化你的下载代码(可选)
你原来的下载代码里有重复逻辑,可以抽成一个工具方法,让代码更整洁易维护:
private void downloadFile(String urlStr, String savePath) throws IOException { File file = new File(savePath); // 先创建父目录,避免文件路径不存在的问题 file.getParentFile().mkdirs(); // 使用try-with-resources自动关闭输入流,更安全 try (InputStream in = new URL(urlStr).openStream()) { Files.copy(in, file.toPath(), StandardCopyOption.REPLACE_EXISTING); } }
然后在主逻辑里调用:
try { downloadFile("https://www.dropbox.com/s/q6f4729i2zu02nz/staff.txt?dl=1", capeInfo + "staff.txt"); downloadFile("https://www.dropbox.com/s/kvvkfk6emms3qg5/contest.txt?dl=1", capeInfo + "contest.txt"); // 这里添加读取和判断UUID的代码 } catch (MalformedURLException e) { e.printStackTrace(); return; } catch (IOException e) { e.printStackTrace(); return; }
最后,你就可以用isStaff和isContestWinner这两个布尔值来控制对应披风的显示啦!
内容的提问来源于stack exchange,提问作者Roadhog360 Gaming
相关产品推荐
相关产品推荐

