Paper/patches/api/0381-Also-load-resources-from-LibraryLoader.patch
Jake Potrebic 5730a94208
Updated Upstream (Bukkit/CraftBukkit) (#8991)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
2b4582fb SPIGOT-5916: getLastColors does not work with the rgb colors

CraftBukkit Changes:
f7707086d SPIGOT-7299: Fix indirect/anvil damage events and minor improvements
2023-03-18 10:05:04 -07:00

49 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 a22b47d452cca95fdd5e468ef61a7f9347cc4b98..86771934c76dd63b219069b045dbb5511ee0f45d 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 {