geforkt von Mirrors/Paper
Simplify Multi-Release plugin jar patch
We don't have to worry about running on Java <9 anymore.
Dieser Commit ist enthalten in:
Ursprung
3353754726
Commit
52287ea614
@ -5,26 +5,15 @@ 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
|
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||||
index 6b5d7c350c216b7a234d96ecacae1d39a1acd814..18cf36020bca7c174a775de75241f149ef4e45e7 100644
|
index 6b5d7c350c216b7a234d96ecacae1d39a1acd814..81292899918c4dc880661ee628384cb840a6244f 100644
|
||||||
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||||
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||||
@@ -58,7 +58,18 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
|
@@ -58,7 +58,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
|
||||||
this.description = description;
|
this.description = description;
|
||||||
this.dataFolder = dataFolder;
|
this.dataFolder = dataFolder;
|
||||||
this.file = file;
|
this.file = file;
|
||||||
- this.jar = new JarFile(file);
|
- this.jar = new JarFile(file);
|
||||||
+ // Paper - enable multi-release jars for Java 9+
|
+ this.jar = new JarFile(file, true, java.util.zip.ZipFile.OPEN_READ, JarFile.runtimeVersion()); // 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.manifest = jar.getManifest();
|
||||||
this.url = file.toURI().toURL();
|
this.url = file.toURI().toURL();
|
||||||
this.libraryLoader = libraryLoader;
|
this.libraryLoader = libraryLoader;
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren