From ecf24a746eac3115abb4074482da2741d8b43d6e Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Sun, 4 Mar 2018 15:33:54 +0800 Subject: [PATCH] Fix crashing when unable to save version setting --- .../jackhuang/hmcl/game/HMCLGameRepository.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java index ee7695306..b98f7355f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/game/HMCLGameRepository.java @@ -173,10 +173,20 @@ public class HMCLGameRepository extends DefaultGameRepository { return new File(getVersionRoot(id), "icon.png"); } - public void saveVersionSetting(String id) { + public boolean saveVersionSetting(String id) { if (!versionSettings.containsKey(id)) - return; - Lang.invoke(() -> FileUtils.writeText(getVersionSettingFile(id), GSON.toJson(versionSettings.get(id)))); + return false; + File file = getVersionSettingFile(id); + if (!FileUtils.makeDirectory(file.getAbsoluteFile().getParentFile())) + return false; + + try { + FileUtils.writeText(file, GSON.toJson(versionSettings.get(id))); + return true; + } catch (IOException e) { + Logging.LOG.log(Level.SEVERE, "Unable to save version setting of " + id, e); + return false; + } } public boolean forbidsVersion(String id) {