summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZekerZhayard <trees1000@qq.com>2021-11-17 21:42:16 +0800
committerZekerZhayard <trees1000@qq.com>2021-11-17 22:10:46 +0800
commite0515ed1f5fe65b55883971c8fd09f0f652a79cc (patch)
treeb218447309c9749db1c26bae3cfd989be99862ce
parent3ee6633a8536fdc72395536dd98b2b5e6363240e (diff)
downloadProject-Tick-e0515ed1f5fe65b55883971c8fd09f0f652a79cc.tar.gz
Project-Tick-e0515ed1f5fe65b55883971c8fd09f0f652a79cc.zip
Remove the legacy part due to all forge installers are upgraded.
-rw-r--r--build.gradle5
-rw-r--r--converter/build.gradle2
-rw-r--r--converter/src/main/java/io/github/zekerzhayard/forgewrapper/converter/Converter.java6
-rw-r--r--converter/src/main/resources/patches/net.minecraftforge.json2
-rw-r--r--gradle.properties2
-rw-r--r--jigsaw/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java4
-rw-r--r--legacy/build.gradle17
-rw-r--r--legacy/src/main/java/io/github/zekerzhayard/forgewrapper/installer/LegacyClientInstall4MultiMC.java24
-rw-r--r--legacy/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/LegacyInstallerUtil.java11
-rw-r--r--settings.gradle1
-rw-r--r--src/main/java/io/github/zekerzhayard/forgewrapper/installer/Installer.java6
-rw-r--r--src/main/java/io/github/zekerzhayard/forgewrapper/installer/Main.java22
-rw-r--r--src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/InstallerUtil.java52
-rw-r--r--src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java5
14 files changed, 27 insertions, 132 deletions
diff --git a/build.gradle b/build.gradle
index b2bbbc5c0d..09570e9de7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,13 +32,12 @@ repositories {
}
dependencies {
- compileOnly "com.google.code.gson:gson:2.8.5"
+ compileOnly "com.google.code.gson:gson:2.8.7"
compileOnly "cpw.mods:modlauncher:8.0.9"
- compileOnly "net.minecraftforge:installer:2.1.4"
+ compileOnly "net.minecraftforge:installer:2.1.9"
compileOnly "net.sf.jopt-simple:jopt-simple:5.0.4"
provided project(":common")
- provided project(":legacy")
multirelase project(":jigsaw")
}
diff --git a/converter/build.gradle b/converter/build.gradle
index d12b3e4e99..a3661b7d68 100644
--- a/converter/build.gradle
+++ b/converter/build.gradle
@@ -24,7 +24,7 @@ repositories {
}
dependencies {
- compileOnly "com.google.code.gson:gson:2.8.5"
+ compileOnly "com.google.code.gson:gson:2.8.7"
provided rootProject
}
diff --git a/converter/src/main/java/io/github/zekerzhayard/forgewrapper/converter/Converter.java b/converter/src/main/java/io/github/zekerzhayard/forgewrapper/converter/Converter.java
index 0fdfc1382b..ade550f0eb 100644
--- a/converter/src/main/java/io/github/zekerzhayard/forgewrapper/converter/Converter.java
+++ b/converter/src/main/java/io/github/zekerzhayard/forgewrapper/converter/Converter.java
@@ -75,7 +75,7 @@ public class Converter {
throw new RuntimeException("The zip file is invalid!");
}
InputStreamReader isr = new InputStreamReader(zf.getInputStream(versionFile), StandardCharsets.UTF_8);
- return new JsonParser().parse(isr).getAsJsonObject();
+ return JsonParser.parseReader(isr).getAsJsonObject();
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -84,7 +84,7 @@ public class Converter {
// Convert mmc-pack.json:
// - Replace Minecraft version
private static JsonObject convertPackJson(String mcVersion) {
- JsonObject pack = new JsonParser().parse(new InputStreamReader(Converter.class.getResourceAsStream("/mmc-pack.json"))).getAsJsonObject();
+ JsonObject pack = JsonParser.parseReader(new InputStreamReader(Converter.class.getResourceAsStream("/mmc-pack.json"))).getAsJsonObject();
for (JsonElement component : getElement(pack, "components").getAsJsonArray()) {
JsonObject componentObject = component.getAsJsonObject();
@@ -101,7 +101,7 @@ public class Converter {
// - Add forge-launcher url
// - Replace Minecraft & Forge versions
private static JsonObject convertPatchesJson(JsonObject installer, JsonObject installProfile, String mcVersion, String forgeVersion, StringBuilder wrapperVersion) {
- JsonObject patches = new JsonParser().parse(new InputStreamReader(Converter.class.getResourceAsStream("/patches/net.minecraftforge.json"))).getAsJsonObject();
+ JsonObject patches = JsonParser.parseReader(new InputStreamReader(Converter.class.getResourceAsStream("/patches/net.minecraftforge.json"))).getAsJsonObject();
JsonArray mavenFiles = getElement(patches, "mavenFiles").getAsJsonArray();
JsonArray libraries = getElement(patches, "libraries").getAsJsonArray();
diff --git a/converter/src/main/resources/patches/net.minecraftforge.json b/converter/src/main/resources/patches/net.minecraftforge.json
index 8b09773bbe..4fac6aabd0 100644
--- a/converter/src/main/resources/patches/net.minecraftforge.json
+++ b/converter/src/main/resources/patches/net.minecraftforge.json
@@ -15,7 +15,7 @@
"mavenFiles": [
{
"name": "net.minecraftforge:forge:{VERSION}-{FORGE_VERSION}:installer",
- "url": "https://files.minecraftforge.net/maven/"
+ "url": "https://maven.minecraftforge.net/"
}
],
"libraries": [
diff --git a/gradle.properties b/gradle.properties
index 3e2c6a328c..5fdd7c6ccf 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
org.gradle.daemon = false
-fw_version = 1.5.2
+fw_version = 1.5.3
diff --git a/jigsaw/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java b/jigsaw/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java
index 3e125331dd..9a49d7f0b8 100644
--- a/jigsaw/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java
+++ b/jigsaw/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java
@@ -102,6 +102,10 @@ public class ModuleUtil {
TypeToAdd.OPENS.implAdd(opens);
}
+ public static ClassLoader getPlatformClassLoader() {
+ return ClassLoader.getPlatformClassLoader();
+ }
+
private enum TypeToAdd {
EXPORTS("Exports"),
OPENS("Opens");
diff --git a/legacy/build.gradle b/legacy/build.gradle
deleted file mode 100644
index 8824390d0f..0000000000
--- a/legacy/build.gradle
+++ /dev/null
@@ -1,17 +0,0 @@
-
-plugins {
- id "java"
- id "eclipse"
-}
-
-repositories {
- mavenCentral()
- maven {
- name = "forge"
- url = "https://maven.minecraftforge.net/"
- }
-}
-
-dependencies {
- compileOnly "net.minecraftforge:installer:2.0.24"
-}
diff --git a/legacy/src/main/java/io/github/zekerzhayard/forgewrapper/installer/LegacyClientInstall4MultiMC.java b/legacy/src/main/java/io/github/zekerzhayard/forgewrapper/installer/LegacyClientInstall4MultiMC.java
deleted file mode 100644
index 0804602087..0000000000
--- a/legacy/src/main/java/io/github/zekerzhayard/forgewrapper/installer/LegacyClientInstall4MultiMC.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package io.github.zekerzhayard.forgewrapper.installer;
-
-import java.io.File;
-import java.util.function.Predicate;
-
-import net.minecraftforge.installer.actions.ClientInstall;
-import net.minecraftforge.installer.actions.ProgressCallback;
-import net.minecraftforge.installer.json.Install;
-
-public class LegacyClientInstall4MultiMC extends ClientInstall {
- protected File libraryDir;
- protected File minecraftJar;
-
- public LegacyClientInstall4MultiMC(Install profile, ProgressCallback monitor, File libraryDir, File minecraftJar) {
- super(profile, monitor);
- this.libraryDir = libraryDir;
- this.minecraftJar = minecraftJar;
- }
-
- @Override
- public boolean run(File target, Predicate<String> optionals) {
- return this.processors.process(this.libraryDir, this.minecraftJar);
- }
-}
diff --git a/legacy/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/LegacyInstallerUtil.java b/legacy/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/LegacyInstallerUtil.java
deleted file mode 100644
index 587b8c7834..0000000000
--- a/legacy/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/LegacyInstallerUtil.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package io.github.zekerzhayard.forgewrapper.installer.util;
-
-import net.minecraftforge.installer.json.Install;
-import net.minecraftforge.installer.json.Util;
-
-// to compatible with forge [1.13.2-25.0.9,1.16.5-36.1.65]
-public class LegacyInstallerUtil {
- public static Install loadInstallProfile() {
- return Util.loadInstallProfile();
- }
-}
diff --git a/settings.gradle b/settings.gradle
index b15e75e4b3..d3b1da5737 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -3,4 +3,3 @@ rootProject.name = 'ForgeWrapper'
include 'common'
include 'converter'
include 'jigsaw'
-include 'legacy'
diff --git a/src/main/java/io/github/zekerzhayard/forgewrapper/installer/Installer.java b/src/main/java/io/github/zekerzhayard/forgewrapper/installer/Installer.java
index 6294c77940..1755ce11f0 100644
--- a/src/main/java/io/github/zekerzhayard/forgewrapper/installer/Installer.java
+++ b/src/main/java/io/github/zekerzhayard/forgewrapper/installer/Installer.java
@@ -2,14 +2,14 @@ package io.github.zekerzhayard.forgewrapper.installer;
import java.io.File;
-import io.github.zekerzhayard.forgewrapper.installer.util.InstallerUtil;
import net.minecraftforge.installer.actions.ProgressCallback;
import net.minecraftforge.installer.json.Install;
+import net.minecraftforge.installer.json.Util;
public class Installer {
public static boolean install(File libraryDir, File minecraftJar, File installerJar, String forgeVersion) {
ProgressCallback monitor = ProgressCallback.withOutputs(System.out);
- Install install = InstallerUtil.loadInstallProfile(forgeVersion);
+ Install profile = Util.loadInstallProfile();
if (System.getProperty("java.net.preferIPv4Stack") == null) {
System.setProperty("java.net.preferIPv4Stack", "true");
}
@@ -18,6 +18,6 @@ public class Installer {
String jvmVersion = System.getProperty("java.vm.version", "missing jvm version");
monitor.message(String.format("JVM info: %s - %s - %s", vendor, javaVersion, jvmVersion));
monitor.message("java.net.preferIPv4Stack=" + System.getProperty("java.net.preferIPv4Stack"));
- return InstallerUtil.runClientInstall(forgeVersion, install, monitor, libraryDir, minecraftJar, installerJar);
+ return new ClientInstall4MultiMC(profile, monitor, libraryDir, minecraftJar).run(null, input -> true, installerJar);
}
}
diff --git a/src/main/java/io/github/zekerzhayard/forgewrapper/installer/Main.java b/src/main/java/io/github/zekerzhayard/forgewrapper/installer/Main.java
index 2729ef52aa..3d955372f0 100644
--- a/src/main/java/io/github/zekerzhayard/forgewrapper/installer/Main.java
+++ b/src/main/java/io/github/zekerzhayard/forgewrapper/installer/Main.java
@@ -21,9 +21,13 @@ public class Main {
String forgeFullVersion = mcVersion + "-" + forgeVersion;
IFileDetector detector = DetectorLoader.loadDetector();
- Bootstrap.bootstrap(detector.getJvmArgs(forgeFullVersion), detector.getMinecraftJar(mcVersion).getFileName().toString(), detector.getLibraryDir().toAbsolutePath().toString());
+ try {
+ Bootstrap.bootstrap(detector.getJvmArgs(forgeFullVersion), detector.getMinecraftJar(mcVersion).getFileName().toString(), detector.getLibraryDir().toAbsolutePath().toString());
+ } catch (Throwable ignored) {
+ // Avoid this bunch of hacks that nuke the whole wrapper.
+ }
if (!detector.checkExtraFiles(forgeFullVersion)) {
- System.out.println("Some extra libraries are missing! Run the installer to generate them now.");
+ System.out.println("Some extra libraries are missing! Running the installer to generate them now.");
// Check installer jar.
Path installerJar = detector.getInstallerJar(forgeFullVersion);
@@ -41,7 +45,7 @@ public class Main {
Main.class.getProtectionDomain().getCodeSource().getLocation(),
Launcher.class.getProtectionDomain().getCodeSource().getLocation(),
installerJar.toUri().toURL()
- }, getParentClassLoader())) {
+ }, ModuleUtil.getPlatformClassLoader())) {
Class<?> installer = ucl.loadClass("io.github.zekerzhayard.forgewrapper.installer.Installer");
if (!(boolean) installer.getMethod("install", File.class, File.class, File.class, String.class).invoke(null, detector.getLibraryDir().toFile(), minecraftJar.toFile(), installerJar.toFile(), forgeVersion)) {
return;
@@ -52,16 +56,4 @@ public class Main {
Class<?> mainClass = ModuleUtil.setupBootstrapLauncher(Class.forName(detector.getMainClass(forgeFullVersion)));
mainClass.getMethod("main", String[].class).invoke(null, new Object[] { args });
}
-
- // https://github.com/MinecraftForge/Installer/blob/fe18a164b5ebb15b5f8f33f6a149cc224f446dc2/src/main/java/net/minecraftforge/installer/actions/PostProcessors.java#L287-L303
- private static ClassLoader getParentClassLoader() {
- if (!System.getProperty("java.version").startsWith("1.")) {
- try {
- return (ClassLoader) ClassLoader.class.getDeclaredMethod("getPlatformClassLoader").invoke(null);
- } catch (Exception e) {
- System.out.println("No platform classloader: " + System.getProperty("java.version"));
- }
- }
- return null;
- }
}
diff --git a/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/InstallerUtil.java b/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/InstallerUtil.java
deleted file mode 100644
index 26f11ce583..0000000000
--- a/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/InstallerUtil.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package io.github.zekerzhayard.forgewrapper.installer.util;
-
-import java.io.File;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import io.github.zekerzhayard.forgewrapper.installer.ClientInstall4MultiMC;
-import io.github.zekerzhayard.forgewrapper.installer.LegacyClientInstall4MultiMC;
-import net.minecraftforge.installer.actions.ProgressCallback;
-import net.minecraftforge.installer.json.Install;
-import net.minecraftforge.installer.json.Util;
-
-public class InstallerUtil {
- public static Install loadInstallProfile(String forgeVersion) {
- if (isLegacyForge(forgeVersion, "36.1.65")) {
- return LegacyInstallerUtil.loadInstallProfile();
- } else {
- // to prevent ClassNotFoundException
- return new Object() {
- public Install get() {
- return Util.loadInstallProfile();
- }
- }.get();
- }
- }
-
- public static boolean runClientInstall(String forgeVersion, Install profile, ProgressCallback monitor, File libraryDir, File minecraftJar, File installerJar) {
- if (isLegacyForge(forgeVersion, "36.1.65")) {
- return new LegacyClientInstall4MultiMC(profile, monitor, libraryDir, minecraftJar).run(null, input -> true);
- } else {
- return new ClientInstall4MultiMC(profile, monitor, libraryDir, minecraftJar).run(null, input -> true, installerJar);
- }
- }
-
- private final static Pattern FORGE_VERSION_PATTERN = Pattern.compile("(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<build>\\d+)");
- private static boolean isLegacyForge(String forgeVersion, String legacyForgeVersion) {
- Matcher m0 = FORGE_VERSION_PATTERN.matcher(forgeVersion);
- Matcher m1 = FORGE_VERSION_PATTERN.matcher(legacyForgeVersion);
- if (m0.find() && m1.find()) {
- return compareVersion(m0, m1, 0, "major", "minor", "build");
- }
- throw new RuntimeException("Missing forge version!");
- }
-
- private static boolean compareVersion(Matcher m0, Matcher m1, int index, String... groups) {
- if (index == groups.length) return true; // the same as the legacy version
- int result = Integer.compare(Integer.parseInt(m0.group(groups[index])), Integer.parseInt(m1.group(groups[index])));
- if (result < 0) return true; // less than the legacy version
- if (result > 0) return false; // greater than the legacy version
- return compareVersion(m0, m1, index + 1, groups);
- }
-}
diff --git a/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java b/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java
index 7461b501b0..c89d714425 100644
--- a/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java
+++ b/src/main/java/io/github/zekerzhayard/forgewrapper/installer/util/ModuleUtil.java
@@ -19,4 +19,9 @@ public class ModuleUtil {
// nothing to do with Java 8
return mainClass;
}
+
+ public static ClassLoader getPlatformClassLoader() {
+ // PlatformClassLoader does not exist in Java 8
+ return null;
+ }
}