aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-API-Patches-Unmapped/0241-Enable-multi-release-plugin-jars.patch
diff options
context:
space:
mode:
authorKyle Wood <[email protected]>2021-04-24 17:01:33 -0500
committerKyle Wood <[email protected]>2021-04-25 18:37:43 -0500
commit3093b81fee3064603c368ab934eddf66ce304433 (patch)
treecb99f05b5f31de92c41af4cc40b4bef5f3cbf573 /Spigot-API-Patches-Unmapped/0241-Enable-multi-release-plugin-jars.patch
parent1af696a05d21cbdd7b5a7170f95598c013257588 (diff)
downloadPaper-3093b81fee3064603c368ab934eddf66ce304433.tar.gz
Paper-3093b81fee3064603c368ab934eddf66ce304433.zip
Move patches
Diffstat (limited to 'Spigot-API-Patches-Unmapped/0241-Enable-multi-release-plugin-jars.patch')
-rw-r--r--Spigot-API-Patches-Unmapped/0241-Enable-multi-release-plugin-jars.patch30
1 files changed, 30 insertions, 0 deletions
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 <[email protected]>
+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<JarFile> 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();
+