From 837939e27cbecb76ff26a77821684a0ba704023a Mon Sep 17 00:00:00 2001 From: Chikage0o0 <89348590+Chikage0o0@users.noreply.github.com> Date: Fri, 2 Sep 2022 11:36:58 +0800 Subject: [PATCH] Fix #1684 (#1685) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复生成option.txt与YOSBR模组的冲突 * only search 1 layer --- .../jackhuang/hmcl/game/HMCLGameLauncher.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java index 39e4641cb..a8a9678a3 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameLauncher.java @@ -59,8 +59,13 @@ public final class HMCLGameLauncher extends DefaultLauncher { private void generateOptionsTxt() { File optionsFile = new File(repository.getRunDirectory(version.getId()), "options.txt"); + File configFolder = new File(repository.getRunDirectory(version.getId()), "config"); + if (optionsFile.exists()) return; + if (configFolder.isDirectory()) + if (findFiles(configFolder, "options.txt")) + return; try { // TODO: Dirty implementation here if (I18n.getCurrentLocale().getLocale() == Locale.CHINA) @@ -70,6 +75,20 @@ public final class HMCLGameLauncher extends DefaultLauncher { } } + private boolean findFiles(File folder, String fileName) { + File[] fs = folder.listFiles(); + if (fs != null) { + for (File f : fs) { + if (f.isDirectory()) + if (f.listFiles((dir, name) -> name.equals(fileName)) != null) + return true; + if (f.getName().equals(fileName)) + return true; + } + } + return false; + } + @Override public ManagedProcess launch() throws IOException, InterruptedException { generateOptionsTxt();