From b8a25f379191601befc09148b4f5b5c2490d54ce Mon Sep 17 00:00:00 2001 From: artdeell Date: Thu, 15 Jul 2021 11:49:38 +0300 Subject: [PATCH] Make use of the runtime selected in Per-Version config --- .../java/net/kdt/pojavlaunch/BaseMainActivity.java | 12 ++++++++++-- .../net/kdt/pojavlaunch/multirt/MultiRTUtils.java | 6 +++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java index 136ff644d..a53230eee 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java @@ -130,7 +130,6 @@ public class BaseMainActivity extends LoggableActivity { // FIXME: is it safe fot multi thread? GLOBAL_CLIPBOARD = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); - MultiRTUtils.setRuntimeNamed(this,LauncherPreferences.PREF_DEFAULT_RUNTIME); logFile = new File(Tools.DIR_GAME_HOME, "latestlog.txt"); logFile.delete(); logFile.createNewFile(); @@ -140,7 +139,16 @@ public class BaseMainActivity extends LoggableActivity { mVersionInfo = Tools.getVersionInfo(null,mProfile.selectedVersion); setTitle("Minecraft " + mProfile.selectedVersion); - + PerVersionConfig.VersionConfig cfg = PerVersionConfig.configMap.get(mProfile.selectedVersion); + String runtime = LauncherPreferences.PREF_DEFAULT_RUNTIME; + if(cfg != null) { + if(cfg.selectedRuntime != null) { + if(MultiRTUtils.forceReread(cfg.selectedRuntime).versionString != null) { + runtime = cfg.selectedRuntime; + } + } + } + MultiRTUtils.setRuntimeNamed(this,runtime); // Minecraft 1.13+ isInputStackCall = mVersionInfo.arguments != null; diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/multirt/MultiRTUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/multirt/MultiRTUtils.java index 0742f2d0b..a5f717ca5 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/multirt/MultiRTUtils.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/multirt/MultiRTUtils.java @@ -162,10 +162,14 @@ public class MultiRTUtils { } public static void setRuntimeNamed(Context ctx, String name) throws IOException { File dest = new File(runtimeFolder,"/"+name); - if(!dest.exists()) return; + if((!dest.exists()) || MultiRTUtils.forceReread(name).versionString == null) throw new RuntimeException("Selected runtime is broken!"); Tools.DIR_HOME_JRE = dest.getAbsolutePath(); JREUtils.relocateLibPath(ctx); } + public static Runtime forceReread(String name) { + cache.remove(name); + return read(name); + } public static Runtime read(String name) { if(cache.containsKey(name)) return cache.get(name); Runtime retur;