DestinySpork Posted January 23, 2016 Posted January 23, 2016 So I have been trying to get a GUI to work for ages, but it won't. The game launches and runs fine, but it crashes when I try to open it it crashes. Using Forge 1.7.10 Crash log: http://pastebin.com/0Vq0zhZP Container: http://pastebin.com/1f02amVJ GuiHandler http://pastebin.com/ypX4t0We TileEntity http://pastebin.com/BHVN0yUT Gui(2) http://pastebin.com/EBrKgdfq I have been following _BedrockMiner_'s tutorials for this. Quote
Ernio Posted January 23, 2016 Posted January 23, 2016 IGuiHandler must return Container on server and Gui on client. You are returning containers on both. For example: Server: new ContainerFood() Client: new GuiFood(newContainerFood()) // you probably want this to be inside constructor. Quote 1.7.10 is no longer supported by forge, you are on your own.
Choonster Posted January 23, 2016 Posted January 23, 2016 What Ernio said is correct and will cause a crash if not fixed, but it's not the cause of this crash in particular. The object you passed to EntityPlayer#openGui doesn't have an IGuiHandler registered for it. This means you either didn't register your mod's IGuiHandler correctly or you're not passing the instance of your @Mod class to EntityPlayer#openGui . Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
DestinySpork Posted January 23, 2016 Author Posted January 23, 2016 registering GuiHandler: NetworkRegistry.INSTANCE.registerGuiHandler(this, new SporksGuiHandler()); in my main class in the FMLPreInitializationEvent I register my SporksStuff instance like this: @Instance("SporksStuff") public static SporksStuff instance = new SporksStuff(); //I tried just public static SporksStuff instance; - didn't work And I run openGui like so: player.openGui(SporksStuff.instance, SporksGuiHandler.FEEDER_GUI_ID, world, x, y, z); Is this right? If not where did I go wrong? Quote
DestinySpork Posted January 23, 2016 Author Posted January 23, 2016 Thank you very much. It needed to be in lower case. Quote
Choonster Posted January 23, 2016 Posted January 23, 2016 The point of the @Instance annotation is that FML populates the field with the instance it's created. An instance created in the field's initialiser won't work for anything because it won't be the instance that FML knows about. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
Recommended Posts
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.