Simplify Multi-Release plugin jar patch

We don't have to worry about running on Java <9 anymore.
This commit is contained in:
Kyle Wood 2021-06-16 23:18:18 -05:00
parent 5eb7d40379
commit d5de9fba04

View file

@ -13,18 +13,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
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;