aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0376-Also-load-resources-from-LibraryLoader.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0376-Also-load-resources-from-LibraryLoader.patch')
-rw-r--r--patches/api/0376-Also-load-resources-from-LibraryLoader.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/patches/api/0376-Also-load-resources-from-LibraryLoader.patch b/patches/api/0376-Also-load-resources-from-LibraryLoader.patch
new file mode 100644
index 0000000000..ee5785d8cb
--- /dev/null
+++ b/patches/api/0376-Also-load-resources-from-LibraryLoader.patch
@@ -0,0 +1,48 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Nick Hensel <[email protected]>
+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 b4732c8dd12134a094ef9afc1870077412ce0435..13da387d3b59bc67c0d73e3fbd3a4034b1281527 100644
+--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
++++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
+@@ -95,14 +95,35 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm
+
+ @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
++
+ // Paper start
+ @Override
+ public Class<?> loadClass(@NotNull String name, boolean resolve, boolean checkGlobal, boolean checkLibraries) throws ClassNotFoundException {