PaperMC/patches/api/0376-Also-load-resources-from-LibraryLoader.patch
Jake Potrebic 96d5e6ca48
Code Generation for TypedKeys (#9233)
Currently includes generated key holder classes for types
used in the Registry Modification API
2023-11-22 20:56:28 -08:00

48 lines
1.9 KiB
Diff

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 877bfe10b858145278133acbc7049f700d2b4f8a..f9b57b872780aa6b9b959494874b57c7a8ff0c53 100644
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
@@ -109,14 +109,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 {