Skip to content
This repository was archived by the owner on Sep 23, 2024. It is now read-only.

Commit a1255ec

Browse files
author
DaRacci
committedNov 12, 2022
refactor: Use the plugins Classloader not always minix's.
This could possibly lead to issues such as two plugins loading the same library but the second not having access to the first plugin and therefor throwing a class not found exception.
1 parent cb45a87 commit a1255ec

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed
 

‎Minix-Core/src/main/java/dev/racci/minix/core/MinixApplicationBuilder.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package dev.racci.minix.core;
22

33
import dev.racci.minix.api.annotations.MinixInternal;
4-
import dev.racci.minix.core.loader.MinixGsonDependencyDataProviderFactory;
54
import dev.racci.minix.core.loader.MinixDependencyVerifierFactory;
65
import dev.racci.minix.core.loader.MinixExternalDependencyDataProviderFactory;
6+
import dev.racci.minix.core.loader.MinixGsonDependencyDataProviderFactory;
77
import dev.racci.minix.core.loader.MinixPreResolutionDataProviderFactory;
88
import io.github.slimjar.app.Application;
99
import io.github.slimjar.app.builder.InjectingApplicationBuilder;
@@ -24,6 +24,8 @@
2424
import java.util.Set;
2525
import java.util.zip.ZipInputStream;
2626
import org.bukkit.plugin.Plugin;
27+
import org.bukkit.plugin.java.JavaPlugin;
28+
import org.bukkit.plugin.java.PluginClassLoader;
2729
import org.jetbrains.annotations.Nullable;
2830
import org.slf4j.Logger;
2931

@@ -84,7 +86,12 @@ public static Application createApplication(final Plugin plugin) {
8486
}
8587

8688
try {
87-
final var app = InjectingApplicationBuilder.createAppending(pluginName, classLoader)
89+
final var loaderMethod = JavaPlugin.class.getDeclaredMethod("getClassLoader");
90+
loaderMethod.setAccessible(true);
91+
final var loader = (PluginClassLoader) loaderMethod.invoke(plugin);
92+
loaderMethod.setAccessible(false);
93+
94+
final var app = InjectingApplicationBuilder.createAppending(pluginName, loader)
8895
.downloadDirectoryPath(downloadFolder)
8996
.preResolutionFileUrl(urlPair.preRes)
9097
.dependencyFileUrl(urlPair.deps)

0 commit comments

Comments
 (0)
This repository has been archived.