SnippetLoader
The whole snippet chain in ONE hop: game-identity names to the game loader, the rest to masking, and only a miss in both retries a hybrid server's plugins (PluginBridge). One loader, not one per concern: every snippet class load walks this, and each level costs a lock + findLoadedClass.
Plugins stay last (so MC/mods/org.bukkit.* keep the server's identity, not a shaded copy) and out of loadClass, whose compiler lookups miss by design.
Properties
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Functions
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun defineClass0(p: ClassLoader, p1: Class<out Any>, p2: String, p3: Array<Byte>, p4: Int, p5: Int, p6: ProtectionDomain, p7: Boolean, p8: Int, p9: Any): Class<out Any>
Link copied to clipboard
open fun defineClass1(p: ClassLoader, p1: String, p2: Array<Byte>, p3: Int, p4: Int, p5: ProtectionDomain, p6: String): Class<out Any>
Link copied to clipboard
open fun defineClass2(p: ClassLoader, p1: String, p2: ByteBuffer, p3: Int, p4: Int, p5: ProtectionDomain, p6: String): Class<out Any>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun findNative(loader: ClassLoader, clazz: Class<out Any>, entryName: String, javaName: String): Long
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Names that must be the GAME's copy, or a snippet value is a different class at the seam →
LinkageError.Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Two shapes mean "not mine": the ordinary
ClassNotFoundException, and a CLOSED loader — Bukkit closes a plugin's the moment its onDisable returns, and Paper's then report the shut jar from findClass as an IllegalStateException, which nothing downstream catches (not its own libraryLoader fallback either).Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard