Posted July 11, 201510 yr I followed a combo of these two tutorials and some general reading, plus previous experience. http://www.minecraftforge.net/forum/index.php/topic,20135.0.html]]http://www.minecraftforge.net/forum/index.php/topic,20135.0.html '> https://gist.github.com/CatDany/4a3df7fcb3c8270cf70b I'm pretty stumped right now. Any Help would be appreciated. I'm getting a crash in the SimpleNetworkWrapper. Log isn't much help on this one but i traced the error in debug to the following spoiler section. I'm going to admit I don't get what that section of code does 100%. however, it fails when it gets to the "return handler.newInstance();" portion. If i check the newInstance and try to go to it in Eclipse, I get "Source not Found". I'm using 1.7. Can see all other source, not sure what the issue is with that. Perhaps I'm missing something in the setup? public <REQ extends IMessage, REPLY extends IMessage> void registerMessage(Class<? extends IMessageHandler<REQ, REPLY>> messageHandler, Class<REQ> requestMessageType, int discriminator, Side side) { registerMessage(instantiate(messageHandler), requestMessageType, discriminator, side); } static <REQ extends IMessage, REPLY extends IMessage> IMessageHandler<? super REQ, ? extends REPLY> instantiate(Class<? extends IMessageHandler<? super REQ, ? extends REPLY>> handler) { try { return handler.newInstance(); } catch (Exception e) { throw Throwables.propagate(e); } } Main Class Call in PreInit simpleNetworkWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(modid); packetHandler = new PacketHandler(); packetHandler.initPackets(); PacketHandler package clandoolittle.custom_npc.Common.Utilities.Networking; import clandoolittle.custom_npc.Custom_NPC; import clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Faction_List; import clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Faction_Member; import clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Faction_Name; import clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Particle; import clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Spawner_Destination; import clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Spawner_Faction; import clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Spawner_Target; import clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Spawner_Type; import net.minecraftforge.fml.relauncher.Side; public class PacketHandler { // Setup Variables Custom_NPC instance = Custom_NPC.instance; // Setup individual Variables private int packetID= 0; public void initPackets() { // Register Packets registerMessage (Faction_List.class, Faction_List.Handler.class); registerMessage (Faction_Member.class, Faction_Member.Handler.class); registerMessage (Faction_Name.class, Faction_Name.Handler.class); registerMessage (Particle.class, Particle.Handler.class); registerMessage (Spawner_Destination.class, Spawner_Destination.Handler.class); registerMessage (Spawner_Faction.class, Spawner_Faction.Handler.class); registerMessage (Spawner_Target.class, Spawner_Target.Handler.class); registerMessage (Spawner_Type.class, Spawner_Type.Handler.class); } private void registerMessage(Class message, Class packet) { // Register packet on both sides instance.simpleNetworkWrapper().registerMessage(packet, message, packetID, Side.CLIENT); instance.simpleNetworkWrapper().registerMessage(packet, message, packetID, Side.SERVER); // Incriment ID packetID++; } } I tried commenting out the first line in "registerMessage" just to make sure the side didn't make a difference. It didn't. Faction_List (this is the first one and the one it fails on) package clandoolittle.custom_npc.Common.Utilities.Networking.Packets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; import clandoolittle.custom_npc.Custom_NPC; import clandoolittle.custom_npc.Common.Factions.Faction.Faction; import io.netty.buffer.ByteBuf; import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; public class Faction_List implements IMessage { // Setup Instance public static Custom_NPC instance = Custom_NPC.instance; // Setup Variables private HashMap<String, Faction> factions = new HashMap<String, Faction>(); public Faction_List() { } public Faction_List(HashMap<String, Faction> factions) { // Initialize variables this.factions.putAll(factions); } @Override public void fromBytes(ByteBuf buffer) { // Clear old faction list factions.clear(); // get count of factions int i_max = buffer.readInt(); for (int i = 0; i < i_max; i++) { // Read faction name String faction = ByteBufUtils.readUTF8String(buffer); // Setup member variable List<String> members = new ArrayList<String>(); // Get count of members int j_max = buffer.readInt(); // Cycle through the specified member names for (int j = 0; j < j_max; j++) { // Get the member name String member = ByteBufUtils.readUTF8String(buffer); // Add to list if not already there if (!members.contains(member)) { members.add(member); } } // Build the faction and add it Faction faction_object = new Faction(); faction_object.members_add(members); factions.put(faction, faction_object); } } @Override public void toBytes(ByteBuf buffer) { // Write the faction count buffer.writeInt(factions.size()); // Loop through each faction for (Entry<String, Faction> item : factions.entrySet()) { // Write the name of the faction ByteBufUtils.writeUTF8String(buffer, item.getKey()); // Write the size of the members buffer.writeInt(item.getValue().members().size()); // Loop through each members for (String item_sub: item.getValue().members()) { ByteBufUtils.writeUTF8String(buffer, item_sub); } } } public class Handler implements IMessageHandler<Faction_List, IMessage> { // Receive the message @Override public IMessage onMessage(Faction_List message, MessageContext ctx) { // Determine side if (ctx.side.isClient()) { // Clear out old factions list instance.faction_manager().faction_clear(); // Add the new factions list instance.faction_manager().faction_update(factions); } else { } // Default Return return null; } } } Long time Bukkit & Forge Programmer Happy to try and help
July 11, 201510 yr show the crash please^^ EDIT: Dont register the packets on both sides. Only register the packet on the site that is meant to receive it
July 11, 201510 yr Author I tried that, made no difference. Besides in a conversation between diesieben07 and coolAlias it was clearly stated that you could. Dany's example shows it as well. Here is the crash log [12:51:38] [main/INFO] [GradleStart]: Extra: [] [12:51:38] [main/INFO] [GradleStart]: Running with arguments: [--tweakClass, net.minecraftforge.fml.common.launcher.FMLServerTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker] [12:51:38] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLServerTweaker [12:51:38] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLServerTweaker [12:51:38] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker [12:51:38] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLServerTweaker [12:51:38] [main/INFO] [FML]: Forge Mod Loader version 8.0.37.1334 for Minecraft 1.8 loading [12:51:38] [main/INFO] [FML]: Java is Java HotSpot 64-Bit Server VM, version 1.7.0_79, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7 [12:51:38] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation [12:51:38] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker [12:51:38] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin [12:51:38] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin [12:51:38] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [12:51:38] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker [12:51:38] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker [12:51:38] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [12:51:38] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker [12:51:38] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper [12:51:39] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work! [12:51:41] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing [12:51:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper [12:51:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker [12:51:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker [12:51:41] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker [12:51:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker [12:51:41] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.server.MinecraftServer} [12:51:44] [server thread/INFO]: Starting minecraft server version 1.8 [12:51:44] [server thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization [12:51:44] [server thread/INFO] [FML]: MinecraftForge v11.14.1.1334 Initialized [12:51:44] [server thread/INFO] [FML]: Replaced 204 ore recipies [12:51:44] [server thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization [12:51:44] [server thread/INFO] [FML]: Searching E:\Desktop Drop\Forge MOD\Forge-1.8-11.14.1.1334\run\mods for mods [12:51:46] [server thread/INFO] [FML]: Forge Mod Loader has identified 6 mods to load [12:51:46] [server thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, dimension_manager, permissions, custom_npc] at CLIENT [12:51:46] [server thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, dimension_manager, permissions, custom_npc] at SERVER [12:51:47] [server thread/ERROR] [dimension_manager]: The mod dimension_manager appears to have an invalid event annotation EventHandler. This annotation can only apply to methods with recognized event arguments - it will not be called [12:51:47] [server thread/ERROR] [permissions]: The mod permissions appears to have an invalid event annotation EventHandler. This annotation can only apply to methods with recognized event arguments - it will not be called [12:51:47] [server thread/ERROR] [custom_npc]: The mod custom_npc appears to have an invalid event annotation EventHandler. This annotation can only apply to methods with recognized event arguments - it will not be called [12:51:47] [server thread/INFO] [FML]: Processing ObjectHolder annotations [12:51:47] [server thread/INFO] [FML]: Found 384 ObjectHolder annotations [12:51:47] [server thread/INFO] [FML]: Configured a dormant chunk cache size of 0 [12:51:47] [server thread/INFO] [FML]: Applying holder lookups [12:51:47] [server thread/INFO] [FML]: Holder lookups applied [12:51:47] [server thread/ERROR] [FML]: Fatal errors were detected during the transition from PREINITIALIZATION to INITIALIZATION. Loading cannot continue [12:51:47] [server thread/ERROR] [FML]: mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized FML{8.0.37.1334} [Forge Mod Loader] (forgeSrc-1.8-11.14.1.1334.jar) Unloaded->Constructed->Pre-initialized Forge{11.14.1.1334} [Minecraft Forge] (forgeSrc-1.8-11.14.1.1334.jar) Unloaded->Constructed->Pre-initialized dimension_manager{1.1} [Dimension Manager] (bin) Unloaded->Constructed->Pre-initialized permissions{1.2} [Permissions] (bin) Unloaded->Constructed->Pre-initialized custom_npc{1.1} [Custom NPC] (bin) Unloaded->Constructed->Errored [12:51:47] [server thread/ERROR] [FML]: The following problems were captured during this phase [12:51:47] [server thread/ERROR] [FML]: Caught exception from custom_npc java.lang.RuntimeException: java.lang.InstantiationException: clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Faction_List$Handler at com.google.common.base.Throwables.propagate(Throwables.java:160) ~[guava-17.0.jar:?] at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.instantiate(SimpleNetworkWrapper.java:116) ~[simpleNetworkWrapper.class:?] at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.registerMessage(SimpleNetworkWrapper.java:106) ~[simpleNetworkWrapper.class:?] at clandoolittle.custom_npc.Common.Utilities.Networking.PacketHandler.registerMessage(PacketHandler.java:40) ~[PacketHandler.class:?] at clandoolittle.custom_npc.Common.Utilities.Networking.PacketHandler.initPackets(PacketHandler.java:26) ~[PacketHandler.class:?] at clandoolittle.custom_npc.Custom_NPC.preInit(Custom_NPC.java:152) ~[Custom_NPC.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_79] at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:518) ~[FMLModContainer.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_79] at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?] at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?] at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[LoadController.class:?] at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[LoadController.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_79] at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?] at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?] at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?] at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:514) [Loader.class:?] at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88) [FMLServerHandler.class:?] at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:355) [FMLCommonHandler.class:?] at net.minecraft.server.dedicated.DedicatedServer.startServer(DedicatedServer.java:120) [DedicatedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:500) [MinecraftServer.class:?] at java.lang.Thread.run(Unknown Source) [?:1.7.0_79] Caused by: java.lang.InstantiationException: clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Faction_List$Handler at java.lang.Class.newInstance(Unknown Source) ~[?:1.7.0_79] at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.instantiate(SimpleNetworkWrapper.java:113) ~[simpleNetworkWrapper.class:?] ... 36 more [12:51:47] [server thread/ERROR]: Encountered an unexpected exception java.lang.RuntimeException: java.lang.InstantiationException: clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Faction_List$Handler at com.google.common.base.Throwables.propagate(Throwables.java:160) ~[guava-17.0.jar:?] at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.instantiate(SimpleNetworkWrapper.java:116) ~[simpleNetworkWrapper.class:?] at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.registerMessage(SimpleNetworkWrapper.java:106) ~[simpleNetworkWrapper.class:?] at clandoolittle.custom_npc.Common.Utilities.Networking.PacketHandler.registerMessage(PacketHandler.java:40) ~[PacketHandler.class:?] at clandoolittle.custom_npc.Common.Utilities.Networking.PacketHandler.initPackets(PacketHandler.java:26) ~[PacketHandler.class:?] at clandoolittle.custom_npc.Custom_NPC.preInit(Custom_NPC.java:152) ~[Custom_NPC.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_79] at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:518) ~[FMLModContainer.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_79] at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?] at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?] at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[LoadController.class:?] at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[LoadController.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_79] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_79] at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?] at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?] at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?] at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:118) ~[LoadController.class:?] at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:514) ~[Loader.class:?] at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88) ~[FMLServerHandler.class:?] at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:355) ~[FMLCommonHandler.class:?] at net.minecraft.server.dedicated.DedicatedServer.startServer(DedicatedServer.java:120) ~[DedicatedServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:500) [MinecraftServer.class:?] at java.lang.Thread.run(Unknown Source) [?:1.7.0_79] Caused by: java.lang.InstantiationException: clandoolittle.custom_npc.Common.Utilities.Networking.Packets.Faction_List$Handler at java.lang.Class.newInstance(Unknown Source) ~[?:1.7.0_79] at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.instantiate(SimpleNetworkWrapper.java:113) ~[simpleNetworkWrapper.class:?] ... 36 more [12:51:47] [server thread/ERROR]: This crash report has been saved to: E:\Desktop Drop\Forge MOD\Forge-1.8-11.14.1.1334\run\.\crash-reports\crash-2015-07-11_12.51.47-server.txt As mentioned, it doesn't show much of use. Long time Bukkit & Forge Programmer Happy to try and help
July 11, 201510 yr ur handler needs to be static if its nested inside another class or forge cant instatiate it
July 11, 201510 yr Author That did it. Thanks. Would you mind explaining to me why Minecraft can't handle it without it being static? Long time Bukkit & Forge Programmer Happy to try and help
July 11, 201510 yr that has nothing to do wiht minecraft, its general java. if u have a nested class u need an instance of the nesting class to instatiate it (except of its static)
July 11, 201510 yr Author I haven't played much with nested classes. So if it wasn't nested, then i wouldn't have the issue? Long time Bukkit & Forge Programmer Happy to try and help
July 11, 201510 yr Thats where static comes into play. It means that every instance is sharing this attribute (in this case the class), which means that u can access it without instance, because its the same for every instance
July 11, 201510 yr Author Ah, got it now. Thanks. I've always been a bit confused by static references but now its clear. Long time Bukkit & Forge Programmer Happy to try and help
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.