Skip to content

Commit

Permalink
This was not the issue
Browse files Browse the repository at this point in the history
Took 4 minutes
  • Loading branch information
DevMunky committed Jan 24, 2025
1 parent 1f2e3cd commit 4313420
Showing 1 changed file with 4 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,19 @@ import io.papermc.paper.plugin.provider.classloader.PluginClassLoaderGroup
* To solve this, we hack around the Paper classloader system to get a classloader that has access to all classes.
*/
class GlobalClassloader(
private val groups: List<PluginClassLoaderGroup>,
private val group: PluginClassLoaderGroup,
private val requester: ConfiguredPluginClassLoader,
) : ClassLoader() {
override fun loadClass(name: String, resolve: Boolean): Class<*> {
for (group in groups) {
return group.getClassByName(name, resolve, requester) ?: continue
}
return super.loadClass(name, resolve)
return group.getClassByName(name, resolve, requester) ?: super.loadClass(name, resolve)
}
}

@Suppress("UNCHECKED_CAST")
internal fun globalClassloader(): GlobalClassloader {
val storage = PaperClassLoaderStorage.instance()

val groups = storage.javaClass.getDeclaredMethod("getGroups").invoke(storage) as List<PluginClassLoaderGroup>
val group = storage.javaClass.getDeclaredMethod("getGlobalGroup").invoke(storage) as PluginClassLoaderGroup
val requester = plugin.javaClass.classLoader as ConfiguredPluginClassLoader

return GlobalClassloader(groups, requester)
return GlobalClassloader(group, requester)
}

0 comments on commit 4313420

Please sign in to comment.