From 23aef2d1ca09a5831207943ff1f9f7703409f48f Mon Sep 17 00:00:00 2001 From: Eilionoir Tunnicliff Date: Tue, 21 Mar 2023 11:50:34 -0400 Subject: [PATCH] Fix slimmed check Previously this was bugged so that you could never force Java 17. --- Natives/LauncherPreferences.m | 9 +++++++++ Natives/LauncherPreferencesViewController.m | 2 +- Natives/main.m | 14 ++------------ Natives/resources/Assets.car | Bin 9232352 -> 9232352 bytes 4 files changed, 12 insertions(+), 13 deletions(-) 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 f5194c89b73c143ce8a01e81b13c10ee9d25aed8..b784b3a33133a159c0b0f6e5c786db9d619a6c96 100644 GIT binary patch delta 726 zcma*lSyPPx7{KxOB<(9vS?bL$2Zhi%vX*_R?0Y1k$P!wK5IT1?<3n_lVW!JIg5$2s z^8sA=2!6)B>Ebv4d1juQXXZ)GeoId=JzHIp8w5cP`Q(w!m!Hu@`PZ6cmw~ zR-h_ab2Y^8=;wy~WZ)UlIY?53U=e{bDG1AE!WehzSuLp0LFVUBQ= zV;tuMCppDw&d^K?t(@f?=efW|E^(PFT;&?qxxr1^xW#SSxkCqc>Es^wc|aH4Jme8Q zJmv{cc}6eKdBIEi=x2aIh8X4*uNmPDZyDts@A<$OANj;*#%IEKVrsIgI0#}%@0O-1 aE!5xt=C}k!GrxW$DzoOX7oAId&-??b{LNqh delta 721 zcma*lSyPPx7{KxOBsy&>M3(A3mXMH=IIltpMajODeNBbzq%0xJxr%S$rlw}P%s0@b zJAD8bK7wE4-njV9f1a7==9zhBrpD7}7@aCF%ngDdhfLyRlQow385^sd{)g7sNECh^ zO|}n((Qp{WNMjD^%w--K#K|O!Y;wqDK6&I*zycPsh(Z>#gd&!*jODDLm=a0}NwAVt ztY!^mtYsbRDQ5!}Y-AIgsbmXPRI`;Dwo%J=c93ND)}7Q*&n|YehXxwiOB4Ip&jFfg z;UI@-rH#Y1bA+QD<2WZc$tg~AhO>0g$vMt*fs0(?GFQ0DHLi1mn{;uDZhGkDHg~v7 zANRP=10M2-$2{RF&*