mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-04 14:12:20 -07:00
Rewrite reflection in library loader jars (#10608)
* Rewrite reflection in library loader jars * Address todos
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
|
||||
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/plugin/java/LibraryLoader.java
|
||||
+++ b/src/main/java/org/bukkit/plugin/java/LibraryLoader.java
|
||||
@@ -0,0 +0,0 @@ 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)
|
||||
{
|
||||
@@ -0,0 +0,0 @@ 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;
|
||||
}
|
Reference in New Issue
Block a user