class HqmPrefixPlugin extends JavaPlugin implements Listener, IHqmPlugin
if(plManager.getPlugin("HqmPrefixPlugin") == null){
FMLLog.info("Cannot find HqmPrefixPlugin!");
return;
}
IHqmPlugin plugin = (IHqmPlugin)plManager.getPlugin("HqmPrefixPlugin");
cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: ru/travnik/hqmprefix/IHqmPlugin
at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
at cpw.mods.fml.common.Loader.serverStarted(Loader.java:803)
at cpw.mods.fml.common.FMLCommonHandler.handleServerStarted(FMLCommonHandler.java:288)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:645)
at java.lang.Thread.run(Thread.java:748)
Bukkit.getPluginManager.callEvent()
.object WGUtil {
val wgPlugin: Plugin = Bukkit.getPluginManager.getPlugin("WorldGuard")
val wgLoader: ClassLoader = wgPlugin.getClass.getClassLoader
val defineMethod: Method = classOf[ClassLoader].getDeclaredMethod("defineClass", classOf[String], classOf[Array[Byte]], classOf[Int], classOf[Int])
{
defineMethod.setAccessible(true)
}
def inject(clazz: Class[_]): Class[_] = {
val bytes = ByteStreams.toByteArray(clazz.getClassLoader.getResourceAsStream(clazz.getName.replaceAll("\\.", "/") + ".class"))
defineMethod.invoke(wgLoader, null.asInstanceOf[AnyRef], bytes.asInstanceOf[AnyRef], 0.asInstanceOf[AnyRef], bytes.length.asInstanceOf[AnyRef]).asInstanceOf[Class[_]]
}
}