Filip4223
-
Posts
3 -
Joined
-
Last visited
Posts posted by Filip4223
-
-
6 minutes ago, diesieben07 said:
To prevent the GUI from opening in GuiOpenEvent you need to cancel the event.
I did it, but I think it's only clientside prevention. I gotta send real packet "close gui" to trigger serverside InventoryCloseEvent (or something like that).
-
I am trying to write an Minecraft Forge (1.12.2) mod. It should work like that:
OnGuiOpen: If GUI title is equals to constant string value then close GUI (like ESC). That must be known by the server exactly like closing a GUI by clicking E/ESC.
My code (doesn't work - I'm seeing 'Turning off' in console but gui is still turned on)
public class ModEventHandler { @SubscribeEvent public void onGuiOpen(GuiOpenEvent event) { if(event.getGui() instanceof GuiContainer) { checkGui((GuiContainer) event.getGui()); } } private void checkGui(GuiContainer gui) { if(gui.inventorySlots instanceof ContainerChest) { ContainerChest _gui = (ContainerChest)gui.inventorySlots; String text = _gui.getLowerChestInventory().getDisplayName().getUnformattedText().toString(); if(text.contains(" ")) { System.out.println("Turning off"); Minecraft.getMinecraft().player.closeScreen(); Minecraft.getMinecraft().displayGuiScreen(null); KeyBinding.onTick(Keyboard.KEY_ESCAPE); } } } }
Thank u in advance for help
-
I am trying to write an Minecraft Forge (1.8.8) mod. It should work like that:
OnGuiOpen: If GUI title is equals to constant string value then close GUI (like ESC). Close event must be respected by server.
My code (doesnt work):
public class ModEventHandler { @SubscribeEvent public void onGuiOpen(GuiOpenEvent event) { if(event.gui instanceof GuiContainer) { checkGui((GuiContainer) event.gui); } } private void checkGui(GuiContainer gui) { if(gui.inventorySlots instanceof ContainerChest) { ContainerChest _gui = (ContainerChest)gui.inventorySlots; IChatComponent component = _gui.getLowerChestInventory().getDisplayName(); String text = component.getUnformattedText(); if(text.contains("Kopanie")) { System.out.println("Turning off"); Minecraft.getMinecraft().thePlayer.closeScreen(); Minecraft.getMinecraft().displayGuiScreen(null); KeyBinding.onTick(Keyboard.KEY_ESCAPE); } } } }
[1.12.2] How can I close GUI in Forge?
in Modder Support
Posted
OK, it works.Tthanks.
I wonder is there better way for doing it instead of creating new thread?