diff options
author | Nassim Jahnke <[email protected]> | 2024-10-27 09:43:00 +0100 |
---|---|---|
committer | Nassim Jahnke <[email protected]> | 2024-10-27 10:03:59 +0100 |
commit | 348c8550967380d9843e365e769f67eee8a8e474 (patch) | |
tree | 185991293a5343239e1107ebc98df37de3d020a5 /patches/api/0459-Allow-modifying-library-loader-jars-bytecode.patch | |
parent | bcf52fe5fd7b178e3c72f53762c8e32ca7910dc4 (diff) | |
download | Paper-348c8550967380d9843e365e769f67eee8a8e474.tar.gz Paper-348c8550967380d9843e365e769f67eee8a8e474.zip |
Readd last API patch (with TODO)
Diffstat (limited to 'patches/api/0459-Allow-modifying-library-loader-jars-bytecode.patch')
-rw-r--r-- | patches/api/0459-Allow-modifying-library-loader-jars-bytecode.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/patches/api/0459-Allow-modifying-library-loader-jars-bytecode.patch b/patches/api/0459-Allow-modifying-library-loader-jars-bytecode.patch new file mode 100644 index 0000000000..0c0311e790 --- /dev/null +++ b/patches/api/0459-Allow-modifying-library-loader-jars-bytecode.patch @@ -0,0 +1,34 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jason Penilla <[email protected]> +Date: Sun, 28 Apr 2024 11:11:26 -0700 +Subject: [PATCH] Allow modifying library loader jars bytecode + + +diff --git a/src/main/java/org/bukkit/plugin/java/LibraryLoader.java b/src/main/java/org/bukkit/plugin/java/LibraryLoader.java +index f4d655a158410039305ac68cebe0d79000f73df8..5b0203e908f84c531886b8ea8faeb591eb045636 100644 +--- a/src/main/java/org/bukkit/plugin/java/LibraryLoader.java ++++ b/src/main/java/org/bukkit/plugin/java/LibraryLoader.java +@@ -46,6 +46,7 @@ public class LibraryLoader + private final RepositorySystem repository; + private final DefaultRepositorySystemSession session; + private final List<RemoteRepository> repositories; ++ public static java.util.function.BiFunction<URL[], ClassLoader, URLClassLoader> LIBRARY_LOADER_FACTORY; // Paper - rewrite reflection in libraries + + public LibraryLoader(@NotNull Logger logger) + { +@@ -130,7 +131,14 @@ public class LibraryLoader + } ); + } + +- URLClassLoader loader = new URLClassLoader( jarFiles.toArray( new URL[ jarFiles.size() ] ), getClass().getClassLoader() ); ++ // Paper start - rewrite reflection in libraries ++ URLClassLoader loader; ++ if (LIBRARY_LOADER_FACTORY == null) { ++ loader = new URLClassLoader( jarFiles.toArray( new URL[ jarFiles.size() ] ), getClass().getClassLoader() ); ++ } else { ++ loader = LIBRARY_LOADER_FACTORY.apply(jarFiles.toArray( new URL[ jarFiles.size() ] ), getClass().getClassLoader()); ++ } ++ // Paper end - rewrite reflection in libraries + + return loader; + } |