Also load resources from LibraryLoader (#8335)

This commit is contained in:
Nick Hensel 2022-09-20 03:07:03 +02:00 committed by GitHub
parent dbc2d60ce0
commit f8742e26cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 0 deletions

View File

@ -49,4 +49,5 @@ Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
LemonCaramel <admin@caramel.moe> LemonCaramel <admin@caramel.moe>
Noah van der Aa <ndvdaa@gmail.com> Noah van der Aa <ndvdaa@gmail.com>
Doc <nachito94@msn.com> Doc <nachito94@msn.com>
Nick Hensel <nickhensel25@icloud.com>
``` ```

View File

@ -0,0 +1,48 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nick Hensel <nickhensel25@icloud.com>
Date: Sun, 28 Aug 2022 23:44:18 +0200
Subject: [PATCH] Also load resources from LibraryLoader
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
index 345394132df70593800127d34a38f8f8a4dafe00..f7cfe6c0d9d52ed72d0d45baaaf856c15769c668 100644
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
@@ -90,14 +90,35 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
@Override
public URL getResource(String name) {
- return findResource(name);
+ // Paper start
+ URL resource = findResource(name);
+ if (resource == null && libraryLoader != null) {
+ return libraryLoader.getResource(name);
+ }
+ return resource;
+ // Paper end
}
@Override
public Enumeration<URL> getResources(String name) throws IOException {
- return findResources(name);
+ // Paper start
+ java.util.ArrayList<URL> resources = new java.util.ArrayList<>();
+ addEnumeration(resources, findResources(name));
+ if (libraryLoader != null) {
+ addEnumeration(resources, libraryLoader.getResources(name));
+ }
+ return Collections.enumeration(resources);
+ // Paper end
}
+ // Paper start
+ private <T> void addEnumeration(java.util.ArrayList<T> list, Enumeration<T> enumeration) {
+ while (enumeration.hasMoreElements()) {
+ list.add(enumeration.nextElement());
+ }
+ }
+ // Paper end
+
@Override
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
return loadClass0(name, resolve, true, true);