From daf95276af5553acde1cb16e7376c8a869752868 Mon Sep 17 00:00:00 2001 From: warlordjones Date: Thu, 28 May 2015 17:02:17 +0100 Subject: [PATCH] Dirty workaround to fix #312 Don't open chisel GUI if the block clicked on has a tile entity. Most TE's have GUIs anyway, so this shouldn't be noticable. Also ignore /world and /config from workspace --- .gitignore | 2 ++ .../cricketcraft/chisel/item/chisel/ChiselController.java | 8 ++++---- .../com/cricketcraft/chisel/network/ChiselGuiHandler.java | 6 ++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 030d4da8..ac0946cd 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,8 @@ screenshots mods lib libs +config +world *.txt *.json diff --git a/src/main/java/com/cricketcraft/chisel/item/chisel/ChiselController.java b/src/main/java/com/cricketcraft/chisel/item/chisel/ChiselController.java index 7b116582..72f5fb53 100644 --- a/src/main/java/com/cricketcraft/chisel/item/chisel/ChiselController.java +++ b/src/main/java/com/cricketcraft/chisel/item/chisel/ChiselController.java @@ -22,7 +22,7 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; public final class ChiselController { public static final ChiselController INSTANCE = new ChiselController(); - + private long lastTickClick = 0; private ChiselController() { @@ -55,9 +55,9 @@ public final class ChiselController { if (group == null) { return; } - + List list = group.getVariations(); - + main: for (ItemStack stack : OreDictionary.getOres(group.getOreName())) { ICarvingVariation v = General.getVariation(stack); for (ICarvingVariation check : list) { @@ -105,7 +105,7 @@ public final class ChiselController { } else { lastTickClick = event.world.getTotalWorldTime(); } - if (!event.world.isRemote && chisel.canOpenGui(event.world, event.entityPlayer, held)) { + if (!event.world.isRemote && chisel.canOpenGui(event.world, event.entityPlayer, held) && event.world.getTileEntity(event.x, event.y, event.z) == null) { event.entityPlayer.openGui(Chisel.instance, 0, event.world, 0, 0, 0); } break; diff --git a/src/main/java/com/cricketcraft/chisel/network/ChiselGuiHandler.java b/src/main/java/com/cricketcraft/chisel/network/ChiselGuiHandler.java index 002b357a..5283737c 100644 --- a/src/main/java/com/cricketcraft/chisel/network/ChiselGuiHandler.java +++ b/src/main/java/com/cricketcraft/chisel/network/ChiselGuiHandler.java @@ -22,7 +22,8 @@ public class ChiselGuiHandler implements IGuiHandler { public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 0: - return new ContainerChisel(player.inventory, new InventoryChiselSelection(player.getCurrentEquippedItem())); + if (player.getCurrentEquippedItem() != null) + return new ContainerChisel(player.inventory, new InventoryChiselSelection(player.getCurrentEquippedItem())); case 1: TileEntity tileentity = world.getTileEntity(x, y, z); if (tileentity instanceof TileEntityAutoChisel) @@ -40,7 +41,8 @@ public class ChiselGuiHandler implements IGuiHandler { public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 0: - return new GuiChisel(player.inventory, new InventoryChiselSelection(player.getCurrentEquippedItem())); + if (player.getCurrentEquippedItem() != null) + return new GuiChisel(player.inventory, new InventoryChiselSelection(player.getCurrentEquippedItem())); case 1: TileEntity tileentity = world.getTileEntity(x, y, z); if (tileentity instanceof TileEntityAutoChisel)