Posted January 8, 201510 yr I don't know whats wrong, no error shown in eclipse, I have looked up this problem and it seems to be between duplicates or something wrong with constructed but I cant find anything. [14:31:27] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker [14:31:27] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker [14:31:27] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker [14:31:28] [main/INFO] [FML]: Forge Mod Loader version 7.2.217.1147 for Minecraft 1.7.2 loading [14:31:28] [main/INFO] [FML]: Java is Java HotSpot 64-Bit Server VM, version 1.7.0_71, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7 [14:31:28] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation [14:31:28] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker [14:31:28] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker [14:31:28] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker [14:31:28] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker [14:31:28] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper [14:31:28] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work! [14:31:31] [main/ERROR] [FML]: The minecraft jar file:/C:/Users/Chris/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.2.1147/forgeSrc-1.7.2-10.12.2.1147.jar!/net/minecraft/client/ClientBrandRetriever.class appears to be corrupt! There has been CRITICAL TAMPERING WITH MINECRAFT, it is highly unlikely minecraft will work! STOP NOW, get a clean copy and try again! [14:31:31] [main/ERROR] [FML]: FML has been ordered to ignore the invalid or missing minecraft certificate. This is very likely to cause a problem! [14:31:31] [main/ERROR] [FML]: Technical information: ClientBrandRetriever was at jar:file:/C:/Users/Chris/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.2.1147/forgeSrc-1.7.2-10.12.2.1147.jar!/net/minecraft/client/ClientBrandRetriever.class, there were 0 certificates for it [14:31:31] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing [14:31:31] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper [14:31:31] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker [14:31:33] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main} [14:31:35] [main/INFO]: Setting user: Player365 [14:31:39] [Client thread/INFO]: LWJGL Version: 2.9.0 [14:31:39] [Client thread/ERROR]: Couldn't set icon javax.imageio.IIOException: Can't read input file! at javax.imageio.ImageIO.read(Unknown Source) ~[?:1.7.0_71] at net.minecraft.client.Minecraft.readImage(Minecraft.java:629) ~[Minecraft.class:?] at net.minecraft.client.Minecraft.startGame(Minecraft.java:458) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:880) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71] at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?] [14:31:43] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization [14:31:43] [Client thread/INFO] [FML]: MinecraftForge v10.12.2.1147 Initialized [14:31:43] [Client thread/INFO] [FML]: Replaced 182 ore recipies [14:31:43] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization [14:31:44] [Client thread/INFO] [FML]: Searching C:\Users\Chris\Desktop\MTD\eclipse\mods for mods [14:31:48] [Client thread/ERROR] [FML]: FML has detected a mod that is using a package name based on 'net.minecraft.src' : net.minecraft.src.FMLRenderAccessLibrary. This is generally a severe programming error. There should be no mod code in the minecraft namespace. MOVE YOUR MOD! If you're in eclipse, select your source code and 'refactor' it into a new package. Go on. DO IT NOW! [14:31:54] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load [14:31:55] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Phantasy realms [14:31:55] [Client thread/INFO] [FML]: Processing ObjectHolder annotations [14:31:55] [Client thread/INFO] [FML]: Found 341 ObjectHolder annotations [14:31:55] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0 [14:31:56] [Client thread/INFO] [FML]: Applying holder lookups [14:31:56] [Client thread/INFO] [FML]: Holder lookups applied Starting up SoundSystem... Initializing LWJGL OpenAL (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) OpenAL initialized. [14:31:58] [sound Library Loader/INFO]: Sound engine started [14:31:59] [Client thread/INFO]: Created: 512x256 textures/blocks-atlas [14:31:59] [Client thread/INFO]: Created: 512x512 textures/items-atlas [14:31:59] [Client thread/ERROR] [FML]: Fatal errors were detected during the transition from INITIALIZATION to POSTINITIALIZATION. Loading cannot continue [14:31:59] [Client thread/ERROR] [FML]: mcp{9.03} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized FML{7.2.217.1147} [Forge Mod Loader] (forgeSrc-1.7.2-10.12.2.1147.jar) Unloaded->Constructed->Pre-initialized->Initialized Forge{10.12.2.1147} [Minecraft Forge] (forgeSrc-1.7.2-10.12.2.1147.jar) Unloaded->Constructed->Pre-initialized->Initialized pr{0.01 ALPHA} [Phantasy realms] (bin) Unloaded->Constructed->Pre-initialized->Errored [14:31:59] [Client thread/ERROR] [FML]: The following problems were captured during this phase [14:31:59] [Client thread/ERROR] [FML]: Caught exception from pr java.lang.NullPointerException at cpw.mods.fml.common.network.NetworkRegistry.registerGuiHandler(NetworkRegistry.java:217) ~[NetworkRegistry.class:?] at com.phantasyrealms.main.MainRegistry.load(MainRegistry.java:100) ~[MainRegistry.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71] at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) ~[FMLModContainer.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) ~[guava-15.0.jar:?] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) ~[guava-15.0.jar:?] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) ~[guava-15.0.jar:?] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) ~[guava-15.0.jar:?] at com.google.common.eventbus.EventBus.post(EventBus.java:267) ~[guava-15.0.jar:?] at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[LoadController.class:?] at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[LoadController.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71] at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) ~[guava-15.0.jar:?] at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) ~[guava-15.0.jar:?] at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) ~[guava-15.0.jar:?] at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) ~[guava-15.0.jar:?] at com.google.common.eventbus.EventBus.post(EventBus.java:267) ~[guava-15.0.jar:?] at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?] at cpw.mods.fml.common.Loader.initializeMods(Loader.java:690) [Loader.class:?] at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:288) [FMLClientHandler.class:?] at net.minecraft.client.Minecraft.startGame(Minecraft.java:573) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:880) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71] at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?] ---- Minecraft Crash Report ---- // I'm sorry, Dave. Time: 1/8/15 2:31 PM Description: Initializing game java.lang.NullPointerException: Initializing game at cpw.mods.fml.common.network.NetworkRegistry.registerGuiHandler(NetworkRegistry.java:217) at com.phantasyrealms.main.MainRegistry.load(MainRegistry.java:100) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) at cpw.mods.fml.common.Loader.initializeMods(Loader.java:690) at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:288) at net.minecraft.client.Minecraft.startGame(Minecraft.java:573) at net.minecraft.client.Minecraft.run(Minecraft.java:880) at net.minecraft.client.main.Main.main(Main.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at cpw.mods.fml.common.network.NetworkRegistry.registerGuiHandler(NetworkRegistry.java:217) at com.phantasyrealms.main.MainRegistry.load(MainRegistry.java:100) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) at com.google.common.eventbus.EventBus.post(EventBus.java:267) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) at cpw.mods.fml.common.Loader.initializeMods(Loader.java:690) at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:288) at net.minecraft.client.Minecraft.startGame(Minecraft.java:573) -- Initialization -- Details: Stacktrace: at net.minecraft.client.Minecraft.run(Minecraft.java:880) at net.minecraft.client.main.Main.main(Main.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) -- System Details -- Details: Minecraft Version: 1.7.2 Operating System: Windows 7 (amd64) version 6.1 Java Version: 1.7.0_71, Oracle Corporation Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 975985056 bytes (930 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v9.03 FML v7.2.217.1147 Minecraft Forge 10.12.2.1147 4 mods loaded, 4 mods active mcp{9.03} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized FML{7.2.217.1147} [Forge Mod Loader] (forgeSrc-1.7.2-10.12.2.1147.jar) Unloaded->Constructed->Pre-initialized->Initialized Forge{10.12.2.1147} [Minecraft Forge] (forgeSrc-1.7.2-10.12.2.1147.jar) Unloaded->Constructed->Pre-initialized->Initialized pr{0.01 ALPHA} [Phantasy realms] (bin) Unloaded->Constructed->Pre-initialized->Errored Launched Version: 1.6 LWJGL: 2.9.0 OpenGL: GeForce 9800 GTX+/PCIe/SSE2 GL version 3.3.0, NVIDIA Corporation Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: [] Current Language: ~~ERROR~~ NullPointerException: null Profiler Position: N/A (disabled) Vec3 Pool Size: ~~ERROR~~ NullPointerException: null Anisotropic Filtering: Off (1) #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Chris\Desktop\MTD\eclipse\.\crash-reports\crash-2015-01-08_14.31.59-client.txt AL lib: (EE) alc_cleanup: 1 device not closed
January 8, 201510 yr Author First of all, please update to 1.7.10. And we can't help you without seeing your code. [15:21:32] [main/INFO] [GradleStart]: Extra: [] [15:21:32] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --accessToken, {REDACTED}, --assetIndex, 1.7.10, --assetsDir, C:/Users/Chris/.gradle/caches/minecraft/assets, --version, 1.7.10, --tweakClass, cpw.mods.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.GradleStartCommon$GradleStartTweaker] [15:21:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker [15:21:32] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker [15:21:32] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.GradleStartCommon$GradleStartTweaker [15:21:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker [15:21:32] [main/INFO] [FML]: Forge Mod Loader version 7.10.85.1277 for Minecraft 1.7.10 loading [15:21:32] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.7.0_71, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7 [15:21:32] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation [15:21:32] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.GradleStartCommon$GradleStartTweaker [15:21:32] [main/INFO] [GradleStart]: Injecting location in coremod cpw.mods.fml.relauncher.FMLCorePlugin [15:21:32] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin [15:21:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker [15:21:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker [15:21:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker [15:21:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker [15:21:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper [15:21:33] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work! [15:21:36] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing [15:21:36] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper [15:21:36] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker [15:21:38] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.TerminalTweaker [15:21:38] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.TerminalTweaker [15:21:38] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main} [15:21:43] [main/INFO]: Setting user: Player168 [15:21:46] [Client thread/INFO]: LWJGL Version: 2.9.1 [15:21:51] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization [15:21:51] [Client thread/INFO] [FML]: MinecraftForge v10.13.2.1277 Initialized [15:21:51] [Client thread/INFO] [FML]: Replaced 183 ore recipies [15:21:51] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization [15:21:51] [Client thread/INFO] [FML]: Config directory created successfully [15:21:52] [Client thread/INFO] [FML]: Searching C:\Users\Chris\Desktop\MTD\eclipse\mods for mods [15:22:02] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load [15:22:03] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, pr] at CLIENT [15:22:03] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, pr] at SERVER [15:22:04] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Phantasy realms [15:22:04] [Client thread/INFO] [FML]: Processing ObjectHolder annotations [15:22:04] [Client thread/INFO] [FML]: Found 341 ObjectHolder annotations [15:22:04] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0 [15:22:05] [Client thread/INFO] [FML]: Applying holder lookups [15:22:05] [Client thread/INFO] [FML]: Holder lookups applied [15:22:06] [sound Library Loader/INFO] [sTDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: [15:22:06] [sound Library Loader/INFO] [sTDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: Starting up SoundSystem... [15:22:06] [Thread-5/INFO] [sTDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: Initializing LWJGL OpenAL [15:22:06] [Thread-5/INFO] [sTDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org) [15:22:08] [Thread-5/INFO] [sTDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: OpenAL initialized. [15:22:08] [sound Library Loader/INFO] [sTDOUT]: [paulscode.sound.SoundSystemLogger:message:69]: [15:22:08] [sound Library Loader/INFO]: Sound engine started [15:22:13] [Client thread/INFO]: Created: 512x256 textures/blocks-atlas [15:22:14] [Client thread/INFO]: Created: 512x512 textures/items-atlas [15:22:14] [Client thread/ERROR] [FML]: Fatal errors were detected during the transition from INITIALIZATION to POSTINITIALIZATION. Loading cannot continue [15:22:14] [Client thread/ERROR] [FML]: mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized FML{7.10.85.1277} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.2.1277.jar) Unloaded->Constructed->Pre-initialized->Initialized Forge{10.13.2.1277} [Minecraft Forge] (forgeSrc-1.7.10-10.13.2.1277.jar) Unloaded->Constructed->Pre-initialized->Initialized pr{0.01 ALPHA} [Phantasy realms] (bin) Unloaded->Constructed->Pre-initialized->Errored [15:22:14] [Client thread/ERROR] [FML]: The following problems were captured during this phase [15:22:14] [Client thread/ERROR] [FML]: Caught exception from pr java.lang.NullPointerException at cpw.mods.fml.common.network.NetworkRegistry.registerGuiHandler(NetworkRegistry.java:217) ~[forgeSrc-1.7.10-10.13.2.1277.jar:?] at com.phantasyrealms.main.MainRegistry.load(MainRegistry.java:100) ~[bin/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71] at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) ~[forgeSrc-1.7.10-10.13.2.1277.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71] 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 cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[forgeSrc-1.7.10-10.13.2.1277.jar:?] at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[forgeSrc-1.7.10-10.13.2.1277.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71] 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 cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?] at cpw.mods.fml.common.Loader.initializeMods(Loader.java:691) [Loader.class:?] at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:288) [FMLClientHandler.class:?] at net.minecraft.client.Minecraft.startGame(Minecraft.java:586) [Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:931) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?] at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:78) [start/:?] at GradleStart.main(GradleStart.java:45) [start/:?] [15:22:14] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: ---- Minecraft Crash Report ---- // My bad. Time: 1/8/15 3:22 PM Description: Initializing game java.lang.NullPointerException: Initializing game at cpw.mods.fml.common.network.NetworkRegistry.registerGuiHandler(NetworkRegistry.java:217) at com.phantasyrealms.main.MainRegistry.load(MainRegistry.java:100) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) at cpw.mods.fml.common.Loader.initializeMods(Loader.java:691) at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:288) at net.minecraft.client.Minecraft.startGame(Minecraft.java:586) at net.minecraft.client.Minecraft.run(Minecraft.java:931) at net.minecraft.client.main.Main.main(Main.java:164) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:78) at GradleStart.main(GradleStart.java:45) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at cpw.mods.fml.common.network.NetworkRegistry.registerGuiHandler(NetworkRegistry.java:217) at com.phantasyrealms.main.MainRegistry.load(MainRegistry.java:100) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) at com.google.common.eventbus.EventBus.post(EventBus.java:275) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) at cpw.mods.fml.common.Loader.initializeMods(Loader.java:691) at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:288) at net.minecraft.client.Minecraft.startGame(Minecraft.java:586) -- Initialization -- Details: Stacktrace: at net.minecraft.client.Minecraft.run(Minecraft.java:931) at net.minecraft.client.main.Main.main(Main.java:164) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:78) at GradleStart.main(GradleStart.java:45) -- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 7 (amd64) version 6.1 Java Version: 1.7.0_71, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 908883072 bytes (866 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v9.05 FML v7.10.85.1277 Minecraft Forge 10.13.2.1277 4 mods loaded, 4 mods active mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized FML{7.10.85.1277} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.2.1277.jar) Unloaded->Constructed->Pre-initialized->Initialized Forge{10.13.2.1277} [Minecraft Forge] (forgeSrc-1.7.10-10.13.2.1277.jar) Unloaded->Constructed->Pre-initialized->Initialized pr{0.01 ALPHA} [Phantasy realms] (bin) Unloaded->Constructed->Pre-initialized->Errored Launched Version: 1.7.10 LWJGL: 2.9.1 OpenGL: GeForce 9800 GTX+/PCIe/SSE2 GL version 3.3.0, NVIDIA Corporation GL Caps: Using GL 1.3 multitexturing. Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported. Anisotropic filtering is supported and maximum anisotropy is 16. Shaders are available because OpenGL 2.1 is supported. Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: [] Current Language: English (US) Profiler Position: N/A (disabled) Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Anisotropic Filtering: Off (1) [15:22:14] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:398]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Chris\Desktop\MTD\eclipse\.\crash-reports\crash-2015-01-08_15.22.14-client.txt AL lib: (EE) alc_cleanup: 1 device not closed I updated and does the error log say anything?
January 8, 201510 yr java.lang.NullPointerException: Initializing game at cpw.mods.fml.common.network.NetworkRegistry.registerGuiHandler(NetworkRegistry.java:217) at com.phantasyrealms.main.MainRegistry.load(MainRegistry.java:100) A shot in the dark: the variable you are using at line 100 in MainRegistry.load isn't being defined before attempting to register it as a Gui handler.
January 8, 201510 yr Author Reading helps: And we can't help you without seeing your code. I dont know which class you specifically need to see... But here is everything Main Registry package com.phantasyrealms.main; import java.io.File; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import sun.net.NetworkServer; import sun.security.krb5.Config; import net.minecraftforge.common.MinecraftForge; import com.phantasyrealms.entity.EntityBoomaMob; import com.phantasyrealms.entity.PhantasyRealmsEntity; import com.phantasyrealms.eventhandler.EventHandlerEntity; import com.phantasyrealms.eventhandler.EventHandlerNetwork; import com.phantasyrealms.item.PhantasyRealmsItems; import com.phantasyrealms.lib.Strings; import com.phantasyrealms.packethandling.PacketHandler; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.Event; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import cpw.mods.fml.relauncher.Side; @Mod(modid = Strings.MODID, name = Strings.name, version = Strings.version) public class MainRegistry { public static final int GUI = 0; @SidedProxy(clientSide = "com.phantasyrealms.main.ClientProxy", serverSide = "com.phantasyrealms.main.ServerProxy") public static ServerProxy proxy; @Instance(Strings.MODID) public static MainRegistry modInstance; public static Object instance; public static File modDir; public static EventHandlerEntity entityEventHandler; public static EventHandlerNetwork entityEventNetwork; public class RegisterKeyBindings { } /** * Loads before * @param PostEvent */ @EventHandler public static void PreLoad(FMLPreInitializationEvent PreEvent){ PhantasyRealmsEntity.mainRegistry(); proxy.registerRenderThings(); PhantasyRealmsItems.mainRegistry(); CraftingManager.mainRegistry(); modDir = PreEvent.getModConfigurationDirectory(); entityEventHandler = new EventHandlerEntity(); entityEventNetwork = new EventHandlerNetwork(); MinecraftForge.EVENT_BUS.register(entityEventHandler); FMLCommonHandler.instance().bus().register(entityEventNetwork); PacketHandler.init(); } /** * Loads during * @param event */ @EventHandler public static void load(FMLInitializationEvent event){ NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy); } /** * Loads after * @param PostEvent */ @EventHandler public static void PostLoad(FMLPostInitializationEvent PostEvent){ } } ClientProxy package com.phantasyrealms.main; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelCreeper; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.storage.WorldInfo; import com.phantasyrealms.entity.EntityBoomaMob; import com.phantasyrealms.entity.EntityEvilSharkMob; import com.phantasyrealms.entity.EntityGoBoomaMob; import com.phantasyrealms.entity.EntityRagRappyMob; import com.phantasyrealms.entity.EntityRappyMob; import com.phantasyrealms.model.ModelBoomaMob; import com.phantasyrealms.model.ModelEvilSharkMob; import com.phantasyrealms.model.ModelGoBoomaMob; import com.phantasyrealms.model.ModelRagRappyMob; import com.phantasyrealms.model.ModelRappyMob; import com.phantasyrealms.render.RenderBoomaMob; import com.phantasyrealms.render.RenderEvilSharkMob; import com.phantasyrealms.render.RenderGoBoomaMob; import com.phantasyrealms.render.RenderRagRappyMob; import com.phantasyrealms.render.RenderRappyMob; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; public class ClientProxy extends ServerProxy{ public void registerRenderThings(){ RenderingRegistry.registerEntityRenderingHandler(EntityGoBoomaMob.class, new RenderGoBoomaMob(new ModelGoBoomaMob(), 0)); RenderingRegistry.registerEntityRenderingHandler(EntityBoomaMob.class, new RenderBoomaMob(new ModelBoomaMob(), 0)); RenderingRegistry.registerEntityRenderingHandler(EntityRappyMob.class, new RenderRappyMob(new ModelRappyMob(), 0)); RenderingRegistry.registerEntityRenderingHandler(EntityRagRappyMob.class, new RenderRagRappyMob(new ModelRagRappyMob(), 0)); RenderingRegistry.registerEntityRenderingHandler(EntityEvilSharkMob.class, new RenderEvilSharkMob(new ModelEvilSharkMob(), 0)); } // In your client proxy: @Override public EntityPlayer getPlayerEntity(MessageContext ctx) { // Note that if you simply return 'Minecraft.getMinecraft().thePlayer', // your packets will not work because you will be getting a client // player even when you are on the server! Sounds absurd, but it's true. // Solution is to double-check side before returning the player: return (ctx.side.isClient() ? Minecraft.getMinecraft().thePlayer : super.getPlayerEntity(ctx)); } public int addArmor(String armor){ return RenderingRegistry.addNewArmourRendererPrefix(armor); } } ServerProxy package com.phantasyrealms.main; import com.phantasyrealms.eventhandler.KeyHandler; import com.phantasyrealms.inventory.InventoryPR; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.storage.WorldInfo; public class ServerProxy implements IGuiHandler { public KeyHandler keyHandler; public void registerHandlers() {} public void registerRenderThings(){ } // In your server proxy (mine is named CommonProxy): /** * Returns a side-appropriate EntityPlayer for use during message handling */ public EntityPlayer getPlayerEntity(MessageContext ctx) { return ctx.getServerHandler().playerEntity; } public int addArmor(String armor){ return 0; } public static NBTTagCompound getEntityData(String saveKey) { // TODO Auto-generated method stub return null; } public void registerRenderers() { // TODO Auto-generated method stub } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case MainRegistry.GUI: return new InventoryPR(player); } return null; } public Object getClientWorld() { // TODO Auto-generated method stub return null; } } PlayerHandler package com.phantasyrealms.lib; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.HashMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import com.google.common.io.Files; import com.phantasyrealms.inventory.InventoryPR; public class PlayerHandler { private static HashMap<String, InventoryPR> playerPR = new HashMap<String, InventoryPR>(); public static void clearPlayerPR(EntityPlayer player) { playerPR.remove(player.getDisplayName()); } public static InventoryPR getPlayerPR(EntityPlayer player) { if (!playerPR.containsKey(player.getDisplayName())) { InventoryPR inventory = new InventoryPR(player); playerPR.put(player.getDisplayName(), inventory); } return playerPR.get(player.getDisplayName()); } public static void setPlayerPR(EntityPlayer player, InventoryPR inventory) { playerPR.put(player.getDisplayName(), inventory); } public static void loadPlayerPR(EntityPlayer player, File file1, File file2) { if (player != null && !player.worldObj.isRemote) { try { NBTTagCompound data = null; boolean save = false; if (file1 != null && file1.exists()) { try { FileInputStream fileinputstream = new FileInputStream( file1); data = CompressedStreamTools .readCompressed(fileinputstream); fileinputstream.close(); } catch (Exception e) { e.printStackTrace(); } } if (file1 == null || !file1.exists() || data == null || data.hasNoTags()) { if (file2 != null && file2.exists()) { try { FileInputStream fileinputstream = new FileInputStream( file2); data = CompressedStreamTools .readCompressed(fileinputstream); fileinputstream.close(); save = true; } catch (Exception e) { e.printStackTrace(); } } } if (data != null) { InventoryPR inventory = new InventoryPR(player); inventory.readNBT(data); playerPR.put(player.getDisplayName(), inventory); if (save) savePlayerPR(player, file1, file2); } } catch (Exception exception1) { exception1.printStackTrace(); } } } public static void savePlayerPR(EntityPlayer player, File file1, File file2) { if (player != null && !player.worldObj.isRemote) { try { if (file1 != null && file1.exists()) { try { Files.copy(file1, file2); } catch (Exception e) { } } try { if (file1 != null) { InventoryPR inventory = getPlayerPR(player); NBTTagCompound data = new NBTTagCompound(); inventory.saveNBT(data); FileOutputStream fileoutputstream = new FileOutputStream( file1); CompressedStreamTools.writeCompressed(data, fileoutputstream); fileoutputstream.close(); } } catch (Exception e) { e.printStackTrace(); if (file1.exists()) { try { file1.delete(); } catch (Exception e2) { } } } } catch (Exception exception1) {; exception1.printStackTrace(); } } } } PacketHandler package com.phantasyrealms.packethandling; import java.io.IOException; import net.minecraft.entity.player.EntityPlayer; import com.google.common.collect.BiMap; import com.google.common.collect.ImmutableBiMap; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import com.jcraft.jogg.Packet; import com.phantasyrealms.lib.Strings; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import cpw.mods.fml.relauncher.Side; public class PacketHandler { public static final SimpleNetworkWrapper INSTANCE = NetworkRegistry.INSTANCE.newSimpleChannel(Strings.MODID.toLowerCase()); public static void init() { INSTANCE.registerMessage(PacketOpenPRInventory.class, PacketOpenPRInventory.class, 0, Side.SERVER); INSTANCE.registerMessage(PacketOpenNormalInventory.class, PacketOpenNormalInventory.class, 1, Side.SERVER); INSTANCE.registerMessage(PacketSyncPR.class, PacketSyncPR.class, 2, Side.CLIENT); } } PacketOpenNormalInventory package com.phantasyrealms.packethandling; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; public class PacketOpenNormalInventory implements IMessage, IMessageHandler<PacketOpenNormalInventory, IMessage> { public PacketOpenNormalInventory() {} public PacketOpenNormalInventory(EntityPlayer player) {} @Override public void toBytes(ByteBuf buffer) {} @Override public void fromBytes(ByteBuf buffer) {} @Override public IMessage onMessage(PacketOpenNormalInventory message, MessageContext ctx) { ctx.getServerHandler().playerEntity.openContainer.onContainerClosed(ctx.getServerHandler().playerEntity); ctx.getServerHandler().playerEntity.openContainer = ctx.getServerHandler().playerEntity.inventoryContainer; return null; } } PacketOpenPRInventory package com.phantasyrealms.packethandling; import com.phantasyrealms.main.MainRegistry; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; public class PacketOpenPRInventory implements IMessage, IMessageHandler<PacketOpenPRInventory, IMessage> { public PacketOpenPRInventory() {} public PacketOpenPRInventory(EntityPlayer player) {} @Override public void toBytes(ByteBuf buffer) {} @Override public void fromBytes(ByteBuf buffer) {} @Override public IMessage onMessage(PacketOpenPRInventory message, MessageContext ctx) { ctx.getServerHandler().playerEntity.openGui(MainRegistry.instance, MainRegistry.GUI, ctx.getServerHandler().playerEntity.worldObj, (int)ctx.getServerHandler().playerEntity.posX, (int)ctx.getServerHandler().playerEntity.posY, (int)ctx.getServerHandler().playerEntity.posZ); return null; } } PacketSyncPR package com.phantasyrealms.packethandling; import io.netty.buffer.ByteBuf; import java.io.IOException; import com.phantasyrealms.lib.PlayerHandler; import com.phantasyrealms.main.MainRegistry; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketBuffer; import net.minecraft.world.World; public class PacketSyncPR implements IMessage, IMessageHandler<PacketSyncPR, IMessage> { int slot; int playerId; ItemStack pr=null; public PacketSyncPR() {} public PacketSyncPR(EntityPlayer player, int slot) { this.slot = slot; this.pr = PlayerHandler.getPlayerPR(player).getStackInSlot(slot); this.playerId = player.getEntityId(); } @Override public void toBytes(ByteBuf buffer) { buffer.writeByte(slot); buffer.writeInt(playerId); ByteBufUtils.writeItemStack(buffer, pr); } @Override public void fromBytes(ByteBuf buffer) { slot = buffer.readByte(); playerId = buffer.readInt(); pr = ByteBufUtils.readItemStack(buffer); } @Override public IMessage onMessage(PacketSyncPR message, MessageContext ctx) { World world = (World) MainRegistry.proxy.getClientWorld(); if (world==null) return null; Entity p = world.getEntityByID(message.playerId); if (p !=null && p instanceof EntityPlayer) { PlayerHandler.getPlayerPR((EntityPlayer) p).stackList[message.slot]=message.pr; } return null; } } ContainerPlayerExpanded package com.phantasyrealms.inventory; import com.phantasyrealms.lib.PlayerHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCraftResult; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.Slot; import net.minecraft.inventory.SlotCrafting; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; public class ContainerPlayerExpanded extends Container { /** * The crafting matrix inventory. */ public InventoryCrafting craftMatrix = new InventoryCrafting(this, 2, 2); public IInventory craftResult = new InventoryCraftResult(); public InventoryPR pr; /** * Determines if inventory manipulation should be handled. */ public boolean isLocalWorld; private final EntityPlayer thePlayer; public ContainerPlayerExpanded(InventoryPlayer playerInv, boolean par2, EntityPlayer player) { this.isLocalWorld = par2; this.thePlayer = player; pr = new InventoryPR(player); pr.setEventHandler(this); if (!player.worldObj.isRemote) { pr.stackList = PlayerHandler.getPlayerPR(player).stackList; } this.addSlotToContainer(new SlotCrafting(playerInv.player, this.craftMatrix, this.craftResult, 0, 144, 36)); int i; int j; for (i = 0; i < 2; ++i) { for (j = 0; j < 2; ++j) { this.addSlotToContainer(new Slot(this.craftMatrix, j + i * 2, 106 + j * 18, 26 + i * 18)); } } for (i = 0; i < 4; ++i) { final int k = i; this.addSlotToContainer(new Slot(playerInv, playerInv.getSizeInventory() - 1 - i, 8, 8 + i * 18) { @Override public int getSlotStackLimit() { return 1; } @Override public boolean isItemValid(ItemStack par1ItemStack) { if (par1ItemStack == null) return false; return par1ItemStack.getItem().isValidArmor(par1ItemStack, k, thePlayer); } }); } this.addSlotToContainer(new SlotMag(pr,PRType.MAG,0,80,8 + 0 * 18)); for (i = 0; i < 3; ++i) { for (j = 0; j < 9; ++j) { this.addSlotToContainer(new Slot(playerInv, j + (i + 1) * 9, 8 + j * 18, 84 + i * 18)); } } for (i = 0; i < 9; ++i) { this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 142)); } this.onCraftMatrixChanged(this.craftMatrix); } /** * Callback for when the crafting matrix is changed. */ @Override public void onCraftMatrixChanged(IInventory par1IInventory) { this.craftResult.setInventorySlotContents(0, CraftingManager.getInstance().findMatchingRecipe(this.craftMatrix, this.thePlayer.worldObj)); } /** * Called when the container is closed. */ @Override public void onContainerClosed(EntityPlayer player) { super.onContainerClosed(player); for (int i = 0; i < 4; ++i) { ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(i); if (itemstack != null) { player.dropPlayerItemWithRandomChoice(itemstack, false); } } this.craftResult.setInventorySlotContents(0, (ItemStack)null); if (!player.worldObj.isRemote) { PlayerHandler.setPlayerPR(player, pr); } } @Override public boolean canInteractWith(EntityPlayer par1EntityPlayer) { return true; } /** * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that. */ @Override public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2) { ItemStack itemstack = null; Slot slot = (Slot)this.inventorySlots.get(par2); if (slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); if (par2 == 0) { if (!this.mergeItemStack(itemstack1, 9+4, 45+4, true)) { return null; } slot.onSlotChange(itemstack1, itemstack); } else if (par2 >= 1 && par2 < 5) { if (!this.mergeItemStack(itemstack1, 9+4, 45+4, false)) { return null; } } else if (par2 >= 5 && par2 < 9) { if (!this.mergeItemStack(itemstack1, 9+4, 45+4, false)) { return null; } } else if (itemstack.getItem() instanceof ItemArmor && !((Slot)this.inventorySlots.get(5 + ((ItemArmor)itemstack.getItem()).armorType)).getHasStack()) { int j = 5 + ((ItemArmor)itemstack.getItem()).armorType; if (!this.mergeItemStack(itemstack1, j, j + 1, false)) { return null; } } else if (itemstack.getItem() instanceof IPR && ((IPR)itemstack.getItem()).getPRType(itemstack)==PRType.MAG && ((IPR)itemstack.getItem()).canEquip(itemstack, thePlayer) && !((Slot)this.inventorySlots.get(9)).getHasStack()) { int j = 9; if (!this.mergeItemStack(itemstack1, j, j + 1, false)) { return null; } } else if (par2 >= 9+4 && par2 < 36+4) { if (!this.mergeItemStack(itemstack1, 36+4, 45+4, false)) { return null; } } else if (par2 >= 36+4 && par2 < 45+4) { if (!this.mergeItemStack(itemstack1, 9+4, 36+4, false)) { return null; } } else if (!this.mergeItemStack(itemstack1, 9+4, 45+4, false, slot)) { return null; } if (itemstack1.stackSize == 0) { slot.putStack((ItemStack)null); } else { slot.onSlotChanged(); } if (itemstack1.stackSize == itemstack.stackSize) { return null; } slot.onPickupFromSlot(par1EntityPlayer, itemstack1); } return itemstack; } private void unequippr(ItemStack stack) { // if (stack.getItem() instanceof IBauble) { // ((IBauble)stack.getItem()).onUnequipped(stack, thePlayer); // } } @Override public void putStacksInSlots(ItemStack[] p_75131_1_) { pr.blockEvents=true; super.putStacksInSlots(p_75131_1_); } protected boolean mergeItemStack(ItemStack par1ItemStack, int par2, int par3, boolean par4, Slot ss) { boolean flag1 = false; int k = par2; if (par4) { k = par3 - 1; } Slot slot; ItemStack itemstack1; if (par1ItemStack.isStackable()) { while (par1ItemStack.stackSize > 0 && (!par4 && k < par3 || par4 && k >= par2)) { slot = (Slot)this.inventorySlots.get(k); itemstack1 = slot.getStack(); if (itemstack1 != null && itemstack1.getItem() == par1ItemStack.getItem() && (!par1ItemStack.getHasSubtypes() || par1ItemStack.getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(par1ItemStack, itemstack1)) { int l = itemstack1.stackSize + par1ItemStack.stackSize; if (l <= par1ItemStack.getMaxStackSize()) { if (ss instanceof SlotMag) unequippr(par1ItemStack); par1ItemStack.stackSize = 0; itemstack1.stackSize = l; slot.onSlotChanged(); flag1 = true; } else if (itemstack1.stackSize < par1ItemStack.getMaxStackSize()) { if (ss instanceof SlotMag) unequippr(par1ItemStack); par1ItemStack.stackSize -= par1ItemStack.getMaxStackSize() - itemstack1.stackSize; itemstack1.stackSize = par1ItemStack.getMaxStackSize(); slot.onSlotChanged(); flag1 = true; } } if (par4) { --k; } else { ++k; } } } if (par1ItemStack.stackSize > 0) { if (par4) { k = par3 - 1; } else { k = par2; } while (!par4 && k < par3 || par4 && k >= par2) { slot = (Slot)this.inventorySlots.get(k); itemstack1 = slot.getStack(); if (itemstack1 == null) { if (ss instanceof SlotMag) unequippr(par1ItemStack); slot.putStack(par1ItemStack.copy()); slot.onSlotChanged(); par1ItemStack.stackSize = 0; flag1 = true; break; } if (par4) { --k; } else { ++k; } } } return flag1; } public boolean canMergeSlot(ItemStack par1ItemStack, Slot par2Slot) { return par2Slot.inventory != this.craftResult && super.canDragIntoSlot(par2Slot); } } InventoryPR package com.phantasyrealms.inventory; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; import com.phantasyrealms.main.MainRegistry; import com.phantasyrealms.packethandling.PacketSyncPR; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.IChatComponent; import net.minecraft.util.MathHelper; public class InventoryPR implements IInventory { public ItemStack[] stackList; private Container eventHandler; public WeakReference<EntityPlayer> player; public boolean blockEvents=false; public InventoryPR(EntityPlayer player) { this.stackList = new ItemStack[4]; this.player = new WeakReference<EntityPlayer>(player); } public Container getEventHandler() { return eventHandler; } public void setEventHandler(Container eventHandler) { this.eventHandler = eventHandler; } /** * Returns the number of slots in the inventory. */ @Override public int getSizeInventory() { return this.stackList.length; } /** * Returns the stack in slot i */ @Override public ItemStack getStackInSlot(int par1) { return par1 >= this.getSizeInventory() ? null : this.stackList[par1]; } /** * Returns the name of the inventory */ @Override public String getInventoryName() { return null; } /** * Returns if the inventory is named */ @Override public boolean hasCustomInventoryName() { return false; } public IChatComponent getDisplayName() { return null; } /** * When some containers are closed they call this on each slot, then drop * whatever it returns as an EntityItem - like when you close a workbench * GUI. */ @Override public ItemStack getStackInSlotOnClosing(int par1) { if (this.stackList[par1] != null) { ItemStack itemstack = this.stackList[par1]; this.stackList[par1] = null; return itemstack; } else { return null; } } /** * Removes from an inventory slot (first arg) up to a specified number * (second arg) of items and returns them in a new stack. */ @Override public ItemStack decrStackSize(int par1, int par2) { if (this.stackList[par1] != null) { ItemStack itemstack; if (this.stackList[par1].stackSize <= par2) { itemstack = this.stackList[par1]; if (itemstack != null && itemstack.getItem() instanceof IPR) { ((IPR) itemstack.getItem()).onUnequipped(itemstack, player.get()); } this.stackList[par1] = null; if (eventHandler != null) this.eventHandler.onCraftMatrixChanged(this); syncSlotToClients(par1); return itemstack; } else { itemstack = this.stackList[par1].splitStack(par2); if (itemstack != null && itemstack.getItem() instanceof IPR) { ((IPR) itemstack.getItem()).onUnequipped(itemstack, player.get()); } if (this.stackList[par1].stackSize == 0) { this.stackList[par1] = null; } if (eventHandler != null) this.eventHandler.onCraftMatrixChanged(this); syncSlotToClients(par1); return itemstack; } } else { return null; } } /** * Sets the given item stack to the specified slot in the inventory (can be * crafting or armor sections). */ @Override public void setInventorySlotContents(int par1, ItemStack stack) { if(!blockEvents && this.stackList[par1] != null) { ((IPR)stackList[par1].getItem()).onUnequipped(stackList[par1], player.get()); } this.stackList[par1] = stack; if (!blockEvents && stack != null && stack.getItem() instanceof IPR) { ((IPR) stack.getItem()).onEquipped(stack, player.get()); } if (eventHandler != null) this.eventHandler.onCraftMatrixChanged(this); syncSlotToClients(par1); } /** * Returns the maximum stack size for a inventory slot. */ @Override public int getInventoryStackLimit() { return 1; } /** * For tile entities, ensures the chunk containing the tile entity is saved * to disk later - the game won't think it hasn't changed and skip it. */ @Override public void markDirty() { try { player.get().inventory.markDirty(); } catch (Exception e) { } } /** * Do not make give this method the name canInteractWith because it clashes * with Container */ @Override public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer) { return true; } @Override public void openInventory() { } @Override public void closeInventory() { } /** * Returns true if automation is allowed to insert the given stack (ignoring * stack size) into the given slot. */ @Override public boolean isItemValidForSlot(int i, ItemStack stack) { if (stack == null || !(stack.getItem() instanceof IPR) || !((IPR) stack.getItem()).canEquip(stack, player.get())) return false; if (i == 0 && ((IPR) stack.getItem()).getPRType(stack) == PRType.MAG) return true; return false; } public int getField(int id) { return 0; } public void setField(int id, int value) { } public int getFieldCount() { return 0; } public void clear() { for(int i = 0; i < stackList.length; i++) { stackList[i] = null; } } public void saveNBT(EntityPlayer player) { NBTTagCompound tags = player.getEntityData(); saveNBT(tags); } public void saveNBT(NBTTagCompound tags) { NBTTagList tagList = new NBTTagList(); NBTTagCompound invSlot; for (int i = 0; i < this.stackList.length; ++i) { if (this.stackList[i] != null) { invSlot = new NBTTagCompound(); invSlot.setByte("Slot", (byte) i); this.stackList[i].writeToNBT(invSlot); tagList.appendTag(invSlot); } } tags.setTag("PR.Inventory", tagList); } public void readNBT(EntityPlayer player) { NBTTagCompound tags = player.getEntityData(); readNBT(tags); } public void readNBT(NBTTagCompound tags) { NBTTagList tagList = tags.getTagList("PR.Inventory", 10); for (int i = 0; i < tagList.tagCount(); ++i) { NBTTagCompound nbttagcompound = (NBTTagCompound) tagList .getCompoundTagAt(i); int j = nbttagcompound.getByte("Slot") & 255; ItemStack itemstack = ItemStack .loadItemStackFromNBT(nbttagcompound); if (itemstack != null) { this.stackList[j] = itemstack; } } } public void dropItems(ArrayList<EntityItem> drops) { for (int i = 0; i < 4; ++i) { if (this.stackList[i] != null) { EntityItem ei = new EntityItem(player.get().worldObj, player.get().posX, player.get().posY + player.get().getEyeHeight(), player.get().posZ, this.stackList[i].copy()); float f1 = player.get().worldObj.rand.nextFloat() * 0.5F; float f2 = player.get().worldObj.rand.nextFloat() * (float) Math.PI * 2.0F; ei.motionX = (double) (-MathHelper.sin(f2) * f1); ei.motionZ = (double) (MathHelper.cos(f2) * f1); ei.motionY = 0.20000000298023224D; drops.add(ei); this.stackList[i] = null; syncSlotToClients(i); } } } public void dropItemsAt(List<EntityItem> drops, Entity e) { for (int i = 0; i < 4; ++i) { if (this.stackList[i] != null) { EntityItem ei = new EntityItem(e.worldObj, e.posX, e.posY + e.getEyeHeight(), e.posZ, this.stackList[i].copy()); float f1 = e.worldObj.rand.nextFloat() * 0.5F; float f2 = e.worldObj.rand.nextFloat() * (float) Math.PI * 2.0F; ei.motionX = (double) (-MathHelper.sin(f2) * f1); ei.motionZ = (double) (MathHelper.cos(f2) * f1); ei.motionY = 0.20000000298023224D; drops.add(ei); this.stackList[i] = null; syncSlotToClients(i); } } } public void syncSlotToClients(int slot) { try { if (MainRegistry.proxy.getClientWorld() == null) { com.phantasyrealms.packethandling.PacketHandler.INSTANCE.sendToAll(new PacketSyncPR(player.get(), slot)); } } catch (Exception e) { e.printStackTrace(); } } } IPR package com.phantasyrealms.inventory; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; /** * * This interface should be extended by items that can be worn in bauble slots * * @author Azanor */ public interface IPR { /** * This method return the type of bauble this is. * Type is used to determine the slots it can go into. */ public PRType getPRType(ItemStack itemstack); /** * This method is called once per tick if the bauble is being worn by a player */ public void onWornTick(ItemStack itemstack, EntityLivingBase player); /** * This method is called when the bauble is equipped by a player */ public void onEquipped(ItemStack itemstack, EntityLivingBase player); /** * This method is called when the bauble is unequipped by a player */ public void onUnequipped(ItemStack itemstack, EntityLivingBase player); /** * can this bauble be placed in a bauble slot */ public boolean canEquip(ItemStack itemstack, EntityLivingBase player); /** * Can this bauble be removed from a bauble slot */ public boolean canUnequip(ItemStack itemstack, EntityLivingBase player); } PRAPI package com.phantasyrealms.inventory; import java.lang.reflect.Method; import cpw.mods.fml.common.FMLLog; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; /** * @author Azanor */ public class PRAPI { static Method getPR; /** * Retrieves the baubles inventory for the supplied player */ public static IInventory getMainRegistry(EntityPlayer player) { IInventory ot = null; try { if(getPR == null) { Class<?> fake = Class.forName("phantasyrealms.common.lib.PlayerHandler"); getPR = fake.getMethod("getPlayerPR", EntityPlayer.class); } ot = (IInventory) getPR.invoke(null, player); } catch(Exception ex) { FMLLog.warning("[PR API] Could not invoke com.phantasyrealms.lib.PlayerHandler method getPlayerPR"); } return ot; } } PRType package com.phantasyrealms.inventory; public enum PRType { MAG } SlotMag package com.phantasyrealms.inventory; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class SlotMag extends Slot { PRType type; public SlotMag(IInventory par2IInventory, PRType type, int par3, int par4, int par5) { super(par2IInventory, par3, par4, par5); this.type = type; } /** * Check if the stack is a valid item for this slot. Always true beside for the armor slots. */ @Override public boolean isItemValid(ItemStack stack) { return stack!=null && stack.getItem() !=null && stack.getItem() instanceof IPR && ((IPR)stack.getItem()).getPRType(stack)==this.type && ((IPR)stack.getItem()).canEquip(stack, ((InventoryPR)this.inventory).player.get()); } @Override public boolean canTakeStack(EntityPlayer player) { return this.getStack()!=null && ((IPR)this.getStack().getItem()).canUnequip(this.getStack(), player); } @Override public int getSlotStackLimit() { return 1; } } EventHandlerEntity package com.phantasyrealms.eventhandler; import java.io.File; import java.io.IOException; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.event.entity.player.PlayerDropsEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import com.google.common.io.Files; import com.phantasyrealms.inventory.IPR; import com.phantasyrealms.inventory.InventoryPR; import com.phantasyrealms.lib.PlayerHandler; import com.sun.swing.internal.plaf.basic.resources.basic_es; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class EventHandlerEntity { @SubscribeEvent public void playerTick(PlayerEvent.LivingUpdateEvent event) { // player events if (event.entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.entity; InventoryPR PR = PlayerHandler.getPlayerPR(player); for (int a = 0; a < PR.getSizeInventory(); a++) { if (PR.getStackInSlot(a) != null && PR.getStackInSlot(a).getItem() instanceof IPR) { ((IPR) PR.getStackInSlot(a).getItem()).onWornTick( PR.getStackInSlot(a), player); } } } } @SubscribeEvent public void playerDeath(PlayerDropsEvent event) { if (event.entity instanceof EntityPlayer && !event.entity.worldObj.isRemote && !event.entity.worldObj.getGameRules() .getGameRuleBooleanValue("keepInventory")) { PlayerHandler.getPlayerPR(event.entityPlayer).dropItemsAt( event.drops,event.entityPlayer); } } @SubscribeEvent public void playerLoad(PlayerEvent.LoadFromFile event) { PlayerHandler.clearPlayerPR(event.entityPlayer); File file1 = getPlayerFile("baub", event.playerDirectory, event.entityPlayer.getDisplayName()); if (!file1.exists()) { File filep = event.getPlayerFile("baub"); if (filep.exists()) { try { Files.copy(filep, file1); filep.delete(); File fb = event.getPlayerFile("baubback"); if (fb.exists()) fb.delete(); } catch (IOException e) {} } else { File filet = getLegacyFileFromPlayer(event.entityPlayer); if (filet.exists()) { try { Files.copy(filet, file1); } catch (IOException e) {} } } } PlayerHandler.loadPlayerPR(event.entityPlayer, file1, getPlayerFile("baubback", event.playerDirectory, event.entityPlayer.getDisplayName())); EventHandlerNetwork.syncPR(event.entityPlayer); } public File getPlayerFile(String suffix, File playerDirectory, String playername) { if ("dat".equals(suffix)) throw new IllegalArgumentException("The suffix 'dat' is reserved"); return new File(playerDirectory, playername+"."+suffix); } public static File getLegacyFileFromPlayer(EntityPlayer player) { try { File playersDirectory = new File(player.worldObj.getSaveHandler().getWorldDirectory(), "players"); return new File(playersDirectory, player.getDisplayName() + ".baub"); } catch (Exception e) { e.printStackTrace(); } return null; } @SubscribeEvent public void playerSave(PlayerEvent.SaveToFile event) { PlayerHandler.savePlayerPR(event.entityPlayer, getPlayerFile("baub", event.playerDirectory, event.entityPlayer.getDisplayName()), getPlayerFile("baubback", event.playerDirectory, event.entityPlayer.getDisplayName())); } } EventHandlerNetwork package com.phantasyrealms.eventhandler; import com.phantasyrealms.lib.PlayerHandler; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.relauncher.Side; import net.minecraft.entity.player.EntityPlayer; public class EventHandlerNetwork { @SubscribeEvent public void playerLoggedInEvent (PlayerEvent.PlayerLoggedInEvent event) { Side side = FMLCommonHandler.instance().getEffectiveSide(); if (side == Side.SERVER) { syncPR(event.player); } } public static void syncPR(EntityPlayer player) { for (int a = 0; a < 4; a++) { PlayerHandler.getPlayerPR(player).syncSlotToClients(a); } } } GuiEvent package com.phantasyrealms.eventhandler; import java.lang.reflect.Method; import com.phantasyrealms.packethandling.PacketHandler; import com.phantasyrealms.packethandling.PacketOpenNormalInventory; import com.phantasyrealms.packethandling.PacketOpenPRInventory; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.inventory.GuiInventory; import net.minecraft.client.resources.I18n; import net.minecraftforge.client.event.GuiScreenEvent; public class GuiEvents { @SideOnly(value = Side.CLIENT) @SubscribeEvent public void guiPostInit(GuiScreenEvent.InitGuiEvent.Post event) { if (event.gui instanceof GuiInventory || event.gui instanceof GuiPlayerExpanded) { int xSize = 176; int ySize = 166; int guiLeft = (event.gui.width - xSize) / 2; int guiTop = (event.gui.height - ySize) / 2; if (!event.gui.mc.thePlayer.getActivePotionEffects().isEmpty() && isNeiHidden()) { guiLeft = 160 + (event.gui.width - xSize - 200) / 2; } event.buttonList.add(new GuiPRButton(55, guiLeft + 66, guiTop + 9, 10, 10, I18n.format((event.gui instanceof GuiInventory)?"button.pr":"button.normal", new Object[0]))); } } @SideOnly(value = Side.CLIENT) @SubscribeEvent public void guiPostAction(GuiScreenEvent.ActionPerformedEvent.Post event) { if (event.gui instanceof GuiInventory) { if (event.button.id == 55) { PacketHandler.INSTANCE.sendToServer(new PacketOpenPRInventory(event.gui.mc.thePlayer)); } } if (event.gui instanceof GuiPlayerExpanded) { if (event.button.id == 55) { event.gui.mc.displayGuiScreen(new GuiInventory(event.gui.mc.thePlayer)); PacketHandler.INSTANCE.sendToServer(new PacketOpenNormalInventory(event.gui.mc.thePlayer)); } } } static Method isNEIHidden; boolean isNeiHidden() { boolean hidden=true; try { if (isNEIHidden==null) { Class fake = Class.forName("codechicken.nei.NEIClientConfig"); isNEIHidden = fake.getMethod("isHidden"); } hidden = (Boolean) isNEIHidden.invoke(null); } catch(Exception ex) { } return hidden; } } GuiPlayerExpanded package com.phantasyrealms.eventhandler; import java.io.IOException; import org.lwjgl.opengl.GL11; import com.phantasyrealms.inventory.ContainerPlayerExpanded; import com.phantasyrealms.inventory.InventoryPR; import com.phantasyrealms.lib.Strings; import com.phantasyrealms.main.MainRegistry; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.achievement.GuiAchievements; import net.minecraft.client.gui.achievement.GuiStats; import net.minecraft.client.renderer.InventoryEffectRenderer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.resources.I18n; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Slot; import net.minecraft.util.ResourceLocation; public class GuiPlayerExpanded extends InventoryEffectRenderer { public static final ResourceLocation background = new ResourceLocation(Strings.MODID + ":Gui.png"); /** x size of the inventory window in pixels. Defined as float, passed as int */ private float xSize_lo; /** y size of the inventory window in pixels. Defined as float, passed as int. */ private float ySize_lo; public GuiPlayerExpanded(EntityPlayer player) { super(new ContainerPlayerExpanded(player.inventory, !player.worldObj.isRemote, player)); this.allowUserInput = true; } /** * Called from the main game loop to update the screen. */ @Override public void updateScreen() { try { ((ContainerPlayerExpanded)inventorySlots).pr.blockEvents=false; } catch (Exception e) { } this.updateActivePotionEffects(); } private void updateActivePotionEffects() { // TODO Auto-generated method stub } /** * Adds the buttons (and other controls) to the screen in question. */ @Override public void initGui() { this.buttonList.clear(); super.initGui(); } /** * Draw the foreground layer for the GuiContainer (everything in front of the items) */ @Override protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_) { this.fontRendererObj.drawString(I18n.format("container.crafting", new Object[0]), 106, 16, 4210752); } /** * Draws the screen and all the components in it. */ @Override public void drawScreen(int par1, int par2, float par3) { super.drawScreen(par1, par2, par3); this.xSize_lo = (float)par1; this.ySize_lo = (float)par2; } @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(background); int k = (this.width - this.xSize) / 2; int l = (this.height - this.ySize) / 2; this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); int i1; drawPlayerModel(k + 51, l + 75, 30, (float)(k + 51) - this.xSize_lo, (float)(l + 75 - 50) - this.ySize_lo, this.mc.thePlayer); } public static void drawPlayerModel(int x, int y, int scale, float yaw, float pitch, EntityLivingBase entity) { GL11.glEnable(GL11.GL_COLOR_MATERIAL); GL11.glPushMatrix(); GL11.glTranslatef(x, y, 50.0F); GL11.glScalef(-scale, scale, scale); GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); float f2 = entity.renderYawOffset; float f3 = entity.rotationYaw; float f4 = entity.rotationPitch; float f5 = entity.prevRotationYawHead; float f6 = entity.rotationYawHead; GL11.glRotatef(135.0F, 0.0F, 1.0F, 0.0F); RenderHelper.enableStandardItemLighting(); GL11.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-((float) Math.atan(pitch / 40.0F)) * 20.0F, 1.0F, 0.0F, 0.0F); entity.renderYawOffset = (float) Math.atan(yaw / 40.0F) * 20.0F; entity.rotationYaw = (float) Math.atan(yaw / 40.0F) * 40.0F; entity.rotationPitch = -((float) Math.atan(pitch / 40.0F)) * 20.0F; entity.rotationYawHead = entity.rotationYaw; entity.prevRotationYawHead = entity.rotationYaw; GL11.glTranslatef(0.0F, entity.yOffset, 0.0F); RenderManager.instance.playerViewY = 180.0F; RenderManager.instance.renderEntityWithPosYaw(entity, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F); entity.renderYawOffset = f2; entity.rotationYaw = f3; entity.rotationPitch = f4; entity.prevRotationYawHead = f5; entity.rotationYawHead = f6; GL11.glPopMatrix(); RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL11.GL_ALPHA_SCALE); OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit); GL11.glDisable(GL11.GL_TEXTURE_2D); OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit); } @Override protected void actionPerformed(GuiButton button) { if (button.id == 0) { this.mc.displayGuiScreen(new GuiAchievements(this, this.mc.thePlayer.getStatFileWriter())); } if (button.id == 1) { this.mc.displayGuiScreen(new GuiStats(this, this.mc.thePlayer.getStatFileWriter())); } } @Override protected void keyTyped(char par1, int par2) { if (par2 == MainRegistry.proxy.keyHandler.key.getKeyCode()) { this.mc.thePlayer.closeScreen(); } else super.keyTyped(par1, par2); } } GuiPRButton package com.phantasyrealms.eventhandler; import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.OpenGlHelper; public class GuiPRButton extends GuiButton { public GuiPRButton(int buttonId, int x, int y, int width, int height, String buttonText) { super(buttonId, x, y, width, height, buttonText); } public void drawButton(Minecraft mc, int xx, int yy) { if (this.visible) { FontRenderer fontrenderer = mc.fontRenderer; mc.getTextureManager().bindTexture(GuiPlayerExpanded.background); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.enabled = xx >= this.xPosition && yy >= this.yPosition && xx < this.xPosition + this.width && yy < this.yPosition + this.height; int k = this.getHoverState(this.enabled); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); if (k==1) { this.drawTexturedModalRect(this.xPosition, this.yPosition, 200, 48, 10, 10); } else { this.drawTexturedModalRect(this.xPosition, this.yPosition, 210, 48, 10, 10); this.drawCenteredString(fontrenderer, this.displayString, this.xPosition + 5, this.yPosition + this.height, 0xffffff); } this.mouseDragged(mc, xx, yy); } } } KeyHandler package com.phantasyrealms.eventhandler; import net.minecraft.client.settings.KeyBinding; import org.lwjgl.input.Keyboard; import com.phantasyrealms.packethandling.PacketHandler; import com.phantasyrealms.packethandling.PacketOpenPRInventory; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.PlayerTickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class KeyHandler { public KeyBinding key = new KeyBinding("Mag Inventory", Keyboard.KEY_B, "key.categories.inventory"); public KeyHandler() { ClientRegistry.registerKeyBinding(key); } @SideOnly(Side.CLIENT) @SubscribeEvent public void playerTick(PlayerTickEvent event) { if (event.side == Side.SERVER) return; if (event.phase == Phase.START ) { if (key.isPressed() && FMLClientHandler.instance().getClient().inGameHasFocus) { PacketHandler.INSTANCE.sendToServer(new PacketOpenPRInventory(event.player)); } } } }
January 8, 201510 yr Author When registering your GuiHandler you use the instance field, but you never initialize it. ah thanks
January 8, 201510 yr Author When registering your GuiHandler you use the instance field, but you never initialize it. I changed it but still a crash, am I not initializing it right? MainRegistry package com.phantasyrealms.main; import java.io.File; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import sun.net.NetworkServer; import sun.security.krb5.Config; import net.minecraftforge.common.MinecraftForge; import com.phantasyrealms.entity.EntityBoomaMob; import com.phantasyrealms.entity.PhantasyRealmsEntity; import com.phantasyrealms.eventhandler.EventHandlerEntity; import com.phantasyrealms.eventhandler.EventHandlerNetwork; import com.phantasyrealms.item.PhantasyRealmsItems; import com.phantasyrealms.lib.Strings; import com.phantasyrealms.packethandling.PacketHandler; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.Event; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import cpw.mods.fml.relauncher.Side; @Mod(modid = Strings.MODID, name = Strings.name, version = Strings.version) public class MainRegistry { public static final int GUI = 0; @SidedProxy(clientSide = "com.phantasyrealms.main.ClientProxy", serverSide = "com.phantasyrealms.main.ServerProxy") public static ServerProxy proxy; @Instance(Strings.MODID) public static MainRegistry modInstance; public static Object instance; public static File modDir; public static EventHandlerEntity entityEventHandler; public static EventHandlerNetwork entityEventNetwork; public static ServerProxy GuiHandler; public class RegisterKeyBindings { } /** * Loads before * @param PostEvent */ @EventHandler public static void PreLoad(FMLPreInitializationEvent PreEvent){ PhantasyRealmsEntity.mainRegistry(); proxy.registerRenderThings(); PhantasyRealmsItems.mainRegistry(); CraftingManager.mainRegistry(); modDir = PreEvent.getModConfigurationDirectory(); entityEventHandler = new EventHandlerEntity(); entityEventNetwork = new EventHandlerNetwork(); MinecraftForge.EVENT_BUS.register(entityEventHandler); FMLCommonHandler.instance().bus().register(entityEventNetwork); NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy); GuiHandler.init(); PacketHandler.init(); } /** * Loads during * @param event */ @EventHandler public static void load(FMLInitializationEvent event){ } /** * Loads after * @param PostEvent */ @EventHandler public static void PostLoad(FMLPostInitializationEvent PostEvent){ } } ServerProxy package com.phantasyrealms.main; import com.phantasyrealms.eventhandler.KeyHandler; import com.phantasyrealms.inventory.InventoryPR; import com.phantasyrealms.packethandling.PacketOpenNormalInventory; import com.phantasyrealms.packethandling.PacketOpenPRInventory; import com.phantasyrealms.packethandling.PacketSyncPR; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import cpw.mods.fml.relauncher.Side; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.storage.WorldInfo; public class ServerProxy implements IGuiHandler { public KeyHandler keyHandler; public void registerHandlers() {} public void registerRenderThings(){ } // In your server proxy (mine is named CommonProxy): /** * Returns a side-appropriate EntityPlayer for use during message handling */ public EntityPlayer getPlayerEntity(MessageContext ctx) { return ctx.getServerHandler().playerEntity; } public int addArmor(String armor){ return 0; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case MainRegistry.GUI: return new InventoryPR(player); } return null; } public Object getClientWorld() { // TODO Auto-generated method stub return null; } public static void init() { } }
January 9, 201510 yr Author Look at this part of code: @Instance(Strings.MODID) public static MainRegistry modInstance; public static Object instance; modInstance is initialized by FML because you put the @Instance annotation on it. instance is not initialized, because, well, you don't initialize it. Will you take a look at my KeyHandler code, and MainRegistry, the game runs fine now after initializing however the GUI doesn't pop up on button press, the button doesnt even show on the controls menu
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.