Add hook to remap library jars

This commit is contained in:
Jason Penilla 2024-04-28 13:51:08 -07:00
parent d9e51980e6
commit cbb0d28ebe

View File

@ -47,6 +47,7 @@ public class LibraryLoader
private final DefaultRepositorySystemSession session; private final DefaultRepositorySystemSession session;
private final List<RemoteRepository> repositories; private final List<RemoteRepository> repositories;
public static java.util.function.BiFunction<URL[], ClassLoader, URLClassLoader> LIBRARY_LOADER_FACTORY; // Paper - rewrite reflection in libraries public static java.util.function.BiFunction<URL[], ClassLoader, URLClassLoader> LIBRARY_LOADER_FACTORY; // Paper - rewrite reflection in libraries
public static java.util.function.Function<List<java.nio.file.Path>, List<java.nio.file.Path>> REMAPPER; // Paper - remap libraries
public LibraryLoader(@NotNull Logger logger) public LibraryLoader(@NotNull Logger logger)
{ {
@ -111,9 +112,18 @@ public class LibraryLoader
} }
List<URL> jarFiles = new ArrayList<>(); List<URL> jarFiles = new ArrayList<>();
List<java.nio.file.Path> jarPaths = new ArrayList<>(); // Paper - remap libraries
for ( ArtifactResult artifact : result.getArtifactResults() ) for ( ArtifactResult artifact : result.getArtifactResults() )
{ {
File file = artifact.getArtifact().getFile(); // Paper start - remap libraries
jarPaths.add(artifact.getArtifact().getFile().toPath());
}
if (REMAPPER != null) {
jarPaths = REMAPPER.apply(jarPaths);
}
for (java.nio.file.Path path : jarPaths) {
File file = path.toFile();
// Paper end - remap libraries
URL url; URL url;
try try