From 051b6e456bc477212ec059a16327477f2f529d33 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Mon, 9 May 2022 09:43:30 +0700 Subject: [PATCH] LWJGL3 repacker Since the Java module system doesn't allow multiple JARs to declare the same module, it has to be packed into one in order for Forge 1.17+ to work. By this way, Forge started working but there's no input for some reasons. --- .../components/lwjgl3/lwjgl-glfw-classes.jar | Bin 429609 -> 429697 bytes .../assets/components/lwjgl3/lwjgl-openal.jar | Bin 63690 -> 61621 bytes .../main/assets/components/lwjgl3/lwjgl.jar | Bin 547362 -> 546815 bytes .../src/main/assets/components/lwjgl3/version | 2 +- .../kdt/pojavlaunch/PojavLoginActivity.java | 51 ++++++++++++++++-- 5 files changed, 49 insertions(+), 4 deletions(-) diff --git a/app_pojavlauncher/src/main/assets/components/lwjgl3/lwjgl-glfw-classes.jar b/app_pojavlauncher/src/main/assets/components/lwjgl3/lwjgl-glfw-classes.jar index 1d64274308787b57d95ad60dd92282dacd8df48a..4f389e2b6ccdb80b740d80710afd5966369b7693 100644 GIT binary patch delta 29351 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 delta 2557 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 delta 5277 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 Yj3?iM7CS*E$X1TAvcf+|;kU{E0d@t6&Hw-a diff --git a/app_pojavlauncher/src/main/assets/components/lwjgl3/version b/app_pojavlauncher/src/main/assets/components/lwjgl3/version index 60ad0a61a..9ad47c4e5 100644 --- a/app_pojavlauncher/src/main/assets/components/lwjgl3/version +++ b/app_pojavlauncher/src/main/assets/components/lwjgl3/version @@ -1 +1 @@ -1647645869468 \ No newline at end of file +1652063179136 \ No newline at end of file diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index 82749dae8..ceec3e5e3 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -58,16 +58,22 @@ import net.kdt.pojavlaunch.value.PerVersionConfig; import net.kdt.pojavlaunch.value.launcherprofiles.LauncherProfiles; import net.kdt.pojavlaunch.value.launcherprofiles.MinecraftProfile; +import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.io.FileUtils; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Locale; +import java.util.jar.Attributes; +import java.util.jar.JarEntry; +import java.util.jar.JarInputStream; +import java.util.jar.JarOutputStream; public class PojavLoginActivity extends BaseActivity { private final Object mLockStoragePerm = new Object(); @@ -261,8 +267,41 @@ public class PojavLoginActivity extends BaseActivity { PojavProfile.setCurrentProfile(this, null); } - - private void unpackComponent(AssetManager am, String component) throws IOException { + private void repackLWJGL3(boolean ignoreExistence) throws IOException { + File outFile = new File(Tools.DIR_GAME_HOME + "/lwjgl3/lwjgl-fat.jar"); + File outTmpFile = new File(Tools.DIR_GAME_HOME + "/lwjgl3/lwjgl-fat.jar.tmp"); + File[] innerFiles = outTmpFile.getParentFile().listFiles(); + + if (outFile.exists() && !ignoreExistence) { + return; + } + outFile.delete(); + outTmpFile.delete(); + + java.util.jar.Manifest manifest = new java.util.jar.Manifest(); + manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0"); + JarOutputStream outJar = new JarOutputStream(new FileOutputStream(outTmpFile), manifest); + outJar.setLevel(9); + + for (File file : innerFiles) { + if (!file.getName().endsWith(".jar")) continue; + JarInputStream inJar = new JarInputStream(new FileInputStream(file)); + JarEntry entry; + while ((entry = inJar.getNextJarEntry()) != null) { + // avoid some duplicated entries + if (entry.getSize() == 0 || entry.getName().equals("META-INF/INDEX.LIST") || entry.getName().startsWith("META-INF/versions")) continue; + outJar.putNextEntry(new JarEntry(entry.getName())); + IOUtils.copy(inJar, outJar); + } + inJar.close(); + file.delete(); + } + + outJar.close(); + outTmpFile.renameTo(outFile); + } + + private boolean unpackComponent(AssetManager am, String component) throws IOException { File versionFile = new File(Tools.DIR_GAME_HOME + "/" + component + "/version"); InputStream is = am.open("components/" + component + "/version"); if(!versionFile.exists()) { @@ -292,8 +331,10 @@ public class PojavLoginActivity extends BaseActivity { } } else { Log.i("UnpackPrep", component + ": Pack is up-to-date with the launcher, continuing..."); + return false; } } + return true; } public static void disableSplash(String dir) { mkdirs(dir + "/config"); @@ -340,7 +381,11 @@ public class PojavLoginActivity extends BaseActivity { AssetManager am = this.getAssets(); unpackComponent(am, "caciocavallo"); - unpackComponent(am, "lwjgl3"); + + // Since the Java module system doesn't allow multiple JARs to declare the same module, + // we repack them to a single file here + repackLWJGL3(unpackComponent(am, "lwjgl3")); + if(!installRuntimeAutomatically(am,MultiRTUtils.getRuntimes().size() > 0)) { MultiRTConfigDialog.openRuntimeSelector(this, MultiRTConfigDialog.MULTIRT_PICK_RUNTIME_STARTUP); synchronized (mLockSelectJRE) {