Jump to content

canelex

Members
  • Posts

    4
  • Joined

  • Last visited

Everything posted by canelex

  1. Thank you! Putting the plugin jar in the mod folder did the trick!
  2. That's the version that most of the servers I play on are.
  3. If I did that it would be loaded as a mod itself. Pus, I eventually want to make it so that you can load plugins at runtime.
  4. Hello everyone, I am currently working on a mod that will allow you to load a plugin for it. In order to do this, I load Hub.class from and external plugin jar and register it in the event bus. This allows the plugin to listen for events and do whatever I need it to do. Here is how I load Hub.class: @Mod(modid="Example", name="Example", version="0.1") public class Example { @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { loadClass(); } private void loadClass() { try { URL[] jarFile = new URL[] { new URL("file:///C:/LC/lc.jar") }; // This is the path to my jar file containing Hub.class URLClassLoader loader = new URLClassLoader(jarFile, this.getClass().getClassLoader()); // Create a URLClassLoader Class<?> classToLoad = Class.forName ("net.canelex.lc.Hub", false, loader); // Find the class Hub.class (package is correct) Object object = classToLoad.getConstructor().newInstance(); // Create a new instance of it. classToLoad.getDeclaredMethod("init").invoke(object); // Run method 'init' } catch (Exception e) { e.printStackTrace(); } } } Here is the class Hub inside of an external plugin jar: public class Hub { public void init() { FMLCommonHandler.instance().bus().register(this); // Register itself into event bus. MinecraftForge.EVENT_BUS.register(this); System.out.println("Registered."); } @SubscribeEvent public void onKey(InputEvent.KeyInputEvent event) { System.out.println("Key Pressed!"); } } So currently, the mod registers the Hub class to the event bus and prints "Registered" into the console. However, as soon as the player presses a key, NoClassDefFoundError is thrown and the game crashes. Because of this, I know that an instance of Hub.class was registered in the event bus, but when the event is called something goes wrong. Can anyone please help me fix this error / point out what I am doing wrong? Thanks! java.lang.NoClassDefFoundError: net/canelex/lc/Hub at cpw.mods.fml.common.eventhandler.ASMEventHandler_6_Hub_onKey_KeyInputEvent.invoke(.dynamic) ~[?:?] at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54) ~[ASMEventHandler.class:?] at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140) [EventBus.class:?] at cpw.mods.fml.common.FMLCommonHandler.fireKeyInput(FMLCommonHandler.java:540) [FMLCommonHandler.class:?] at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1873) [bao.class:?] at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:973) [bao.class:?] at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:898) [bao.class:?] at net.minecraft.client.main.Main.main(SourceFile:148) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_25] at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_25] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] Caused by: java.lang.ClassNotFoundException: net.canelex.lc.Hub at java.lang.ClassLoader.findClass(ClassLoader.java:530) ~[?:1.8.0_25] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_25] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_25] ... 14 more
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.