From 2980afdd0538b89fd04031622ff02aa3551241c8 Mon Sep 17 00:00:00 2001 From: artdeell Date: Tue, 22 Aug 2023 13:24:48 +0300 Subject: [PATCH] Feat[lib]: replace ASM <5 with ASM 5.0.4 --- .../main/java/net/kdt/pojavlaunch/Tools.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java index 3e1bd1131..f2b8f94d9 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -56,6 +56,7 @@ import net.kdt.pojavlaunch.utils.JSONUtils; import net.kdt.pojavlaunch.utils.OldVersionsUtils; import net.kdt.pojavlaunch.value.DependentLibrary; import net.kdt.pojavlaunch.value.MinecraftAccount; +import net.kdt.pojavlaunch.value.MinecraftLibraryArtifact; import net.kdt.pojavlaunch.value.launcherprofiles.LauncherProfiles; import net.kdt.pojavlaunch.value.launcherprofiles.MinecraftProfile; @@ -628,8 +629,9 @@ public final class Tools { if (libItem.name.startsWith("net.java.dev.jna:jna:")) { // Special handling for LabyMod 1.8.9, Forge 1.12.2(?) and oshi // we have libjnidispatch 5.13.0 in jniLibs directory - if (Integer.parseInt(version[0]) >= 5 && Integer.parseInt(version[1]) >= 13) return; + if (Integer.parseInt(version[0]) >= 5 && Integer.parseInt(version[1]) >= 13) continue; Log.d(APP_NAME, "Library " + libItem.name + " has been changed to version 5.13.0"); + createLibraryInfo(libItem); libItem.name = "net.java.dev.jna:jna:5.13.0"; libItem.downloads.artifact.path = "net/java/dev/jna/jna/5.13.0/jna-5.13.0.jar"; libItem.downloads.artifact.sha1 = "1200e7ebeedbe0d10062093f32925a912020e747"; @@ -638,16 +640,31 @@ public final class Tools { //if (Integer.parseInt(version[0]) >= 6 && Integer.parseInt(version[1]) >= 3) return; // FIXME: ensure compatibility - if (Integer.parseInt(version[0]) != 6 || Integer.parseInt(version[1]) != 2) return; + if (Integer.parseInt(version[0]) != 6 || Integer.parseInt(version[1]) != 2) continue; Log.d(APP_NAME, "Library " + libItem.name + " has been changed to version 6.3.0"); + createLibraryInfo(libItem); libItem.name = "com.github.oshi:oshi-core:6.3.0"; libItem.downloads.artifact.path = "com/github/oshi/oshi-core/6.3.0/oshi-core-6.3.0.jar"; libItem.downloads.artifact.sha1 = "9e98cf55be371cafdb9c70c35d04ec2a8c2b42ac"; libItem.downloads.artifact.url = "https://repo1.maven.org/maven2/com/github/oshi/oshi-core/6.3.0/oshi-core-6.3.0.jar"; + } else if (libItem.name.startsWith("org.ow2.asm:asm-all:")) { + if(Integer.parseInt(version[0]) >= 5) continue; + Log.d(APP_NAME, "Library " + libItem.name + " has been changed to version 5.0.4"); + createLibraryInfo(libItem); + libItem.name = "org.ow2.asm:asm-all:5.0.4"; + libItem.url = null; + libItem.downloads.artifact.path = "org/ow2/asm/asm-all/5.0.4/asm-all-5.0.4.jar"; + libItem.downloads.artifact.sha1 = "e6244859997b3d4237a552669279780876228909"; + libItem.downloads.artifact.url = "https://repo1.maven.org/maven2/org/ow2/asm/asm-all/5.0.4/asm-all-5.0.4.jar"; } } } + private static void createLibraryInfo(DependentLibrary library) { + if(library.downloads == null || library.downloads.artifact == null) + library.downloads = new DependentLibrary.LibraryDownloads(new MinecraftLibraryArtifact()); + } + public static String[] generateLibClasspath(JMinecraftVersionList.Version info) { List libDir = new ArrayList<>(); for (DependentLibrary libItem: info.libraries) {