From 3093b81fee3064603c368ab934eddf66ce304433 Mon Sep 17 00:00:00 2001 From: Kyle Wood Date: Sat, 24 Apr 2021 17:01:33 -0500 Subject: Move patches --- .../0241-Enable-multi-release-plugin-jars.patch | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Spigot-API-Patches-Unmapped/0241-Enable-multi-release-plugin-jars.patch (limited to 'Spigot-API-Patches-Unmapped/0241-Enable-multi-release-plugin-jars.patch') diff --git a/Spigot-API-Patches-Unmapped/0241-Enable-multi-release-plugin-jars.patch b/Spigot-API-Patches-Unmapped/0241-Enable-multi-release-plugin-jars.patch new file mode 100644 index 0000000000..892d1d4874 --- /dev/null +++ b/Spigot-API-Patches-Unmapped/0241-Enable-multi-release-plugin-jars.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Kyle Wood +Date: Fri, 4 Dec 2020 15:53:19 -0800 +Subject: [PATCH] Enable multi-release plugin jars + + +diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +index 62f7a6817da079513f471e36cd79739d36a36d86..7760be3e34fa20825faf145d9fb5b2855c1a4602 100644 +--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java ++++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +@@ -56,7 +56,18 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot + this.description = description; + this.dataFolder = dataFolder; + this.file = file; +- this.jar = new JarFile(file); ++ // Paper - enable multi-release jars for Java 9+ ++ JarFile jarFile; ++ try { ++ final java.lang.reflect.Method runtimeVersionMethod = JarFile.class.getMethod("runtimeVersion"); ++ final Object runtimeVersion = runtimeVersionMethod.invoke(null); ++ @SuppressWarnings("JavaReflectionMemberAccess") final java.lang.reflect.Constructor constructor = JarFile.class.getConstructor(File.class, boolean.class, int.class, runtimeVersion.getClass()); ++ jarFile = constructor.newInstance(file, true, java.util.zip.ZipFile.OPEN_READ, runtimeVersion); ++ } catch (Exception ignored) { ++ jarFile = new JarFile(file); ++ } ++ this.jar = jarFile; ++ // Paper end + this.manifest = jar.getManifest(); + this.url = file.toURI().toURL(); + -- cgit v1.2.3