|
1 | 1 | package dev.racci.minix.core;
|
2 | 2 |
|
3 | 3 | import dev.racci.minix.api.annotations.MinixInternal;
|
4 |
| -import dev.racci.minix.core.loader.MinixGsonDependencyDataProviderFactory; |
5 | 4 | import dev.racci.minix.core.loader.MinixDependencyVerifierFactory;
|
6 | 5 | import dev.racci.minix.core.loader.MinixExternalDependencyDataProviderFactory;
|
| 6 | +import dev.racci.minix.core.loader.MinixGsonDependencyDataProviderFactory; |
7 | 7 | import dev.racci.minix.core.loader.MinixPreResolutionDataProviderFactory;
|
8 | 8 | import io.github.slimjar.app.Application;
|
9 | 9 | import io.github.slimjar.app.builder.InjectingApplicationBuilder;
|
|
24 | 24 | import java.util.Set;
|
25 | 25 | import java.util.zip.ZipInputStream;
|
26 | 26 | import org.bukkit.plugin.Plugin;
|
| 27 | +import org.bukkit.plugin.java.JavaPlugin; |
| 28 | +import org.bukkit.plugin.java.PluginClassLoader; |
27 | 29 | import org.jetbrains.annotations.Nullable;
|
28 | 30 | import org.slf4j.Logger;
|
29 | 31 |
|
@@ -84,7 +86,12 @@ public static Application createApplication(final Plugin plugin) {
|
84 | 86 | }
|
85 | 87 |
|
86 | 88 | 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) |
88 | 95 | .downloadDirectoryPath(downloadFolder)
|
89 | 96 | .preResolutionFileUrl(urlPair.preRes)
|
90 | 97 | .dependencyFileUrl(urlPair.deps)
|
|
0 commit comments