diff --git a/Natives/LauncherPreferences.m b/Natives/LauncherPreferences.m index 8dee4ae6..331ff195 100644 --- a/Natives/LauncherPreferences.m +++ b/Natives/LauncherPreferences.m @@ -145,6 +145,7 @@ void loadPreferences(BOOL reset) { setDefaultValueForPref(envPrefDict, @"renderer", @"auto"); setDefaultValueForPref(envPrefDict, @"fullscreen_airplay", @YES); setDefaultValueForPref(envPrefDict, @"hardware_hide", @NO); + setDefaultValueForPref(prefDict, @"slimmed", @NO); fillDefaultWarningDict(); setDefaultValueForPref(prefDict, @"force_unsupported_launch", @NO); setDefaultValueForPref(prefDict, @"slideable_hotbar", @NO); @@ -169,6 +170,14 @@ void loadPreferences(BOOL reset) { prefDict[@"debugs"] = debugPrefDict; prefDict[@"env_vars"] = envPrefDict; prefDict[@"warnings"] = warnPrefDict; + + NSString *ipajre = [NSString stringWithFormat:@"%s/jvm/java-17-openjdk", getenv("BUNDLE_PATH")]; + NSString *sysjre = @"/usr/lib/jvm/java-17-openjdk"; + if ((![fileManager fileExistsAtPath:ipajre]) && (![fileManager fileExistsAtPath:sysjre])) { + setPreference(@"slimmed", @YES); + } else { + setPreference(@"slimmed", @NO); + } [prefDict writeToFile:prefPath atomically:YES]; } diff --git a/Natives/LauncherPreferencesViewController.m b/Natives/LauncherPreferencesViewController.m index 7a0b0faf..9f08b5f4 100644 --- a/Natives/LauncherPreferencesViewController.m +++ b/Natives/LauncherPreferencesViewController.m @@ -334,7 +334,7 @@ typedef void(^CreateView)(UITableViewCell *, NSString *, NSDictionary *); @"icon": @"cube", @"type": self.typeSwitch, @"enableCondition": ^BOOL(){ - return !getenv("SLIMMED") && whenNotInGame(); + return (![getPreference(@"slimmed") boolValue]) && whenNotInGame(); }, // false: 8, true: 17 @"customSwitchValue": @[@"java-8-openjdk", @"java-17-openjdk"] diff --git a/Natives/main.m b/Natives/main.m index cbd450cc..84391a5d 100644 --- a/Natives/main.m +++ b/Natives/main.m @@ -306,14 +306,6 @@ void init_setupResolvConf() { } } -void init_setupSlimmed() { - NSString *ipajre = [NSString stringWithFormat:@"%s/jvm/java-17-openjdk", getenv("BUNDLE_PATH")]; - NSString *sysjre = @"/usr/lib/jvm/java-17-openjdk"; - if ((![fm fileExistsAtPath:ipajre]) && (![fm fileExistsAtPath:sysjre])) { - setenv("SLIMMED", "1", 1); - } -} - void init_setupHomeDirectory() { setenv("HOME", [NSFileManager.defaultManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] .lastObject.path.stringByDeletingLastPathComponent.UTF8String, 1); @@ -341,6 +333,8 @@ void init_setupHomeDirectory() { } int main(int argc, char *argv[]) { + setenv("BUNDLE_PATH", dirname(argv[0]), 1); + if (pJLI_Launch) { return pJLI_Launch(argc, (const char **)argv, 0, NULL, // sizeof(const_jargs) / sizeof(char *), const_jargs, @@ -363,12 +357,8 @@ int main(int argc, char *argv[]) { } init_checkForJailbreak(); - init_setupSlimmed(); init_migrateDirIfNecessary(); - - setenv("BUNDLE_PATH", dirname(argv[0]), 1); - init_setupHomeDirectory(); init_redirectStdio(); init_logDeviceAndVer(argv[0]); diff --git a/Natives/resources/Assets.car b/Natives/resources/Assets.car index f5194c89..b784b3a3 100644 Binary files a/Natives/resources/Assets.car and b/Natives/resources/Assets.car differ