From 98e0d1c0818830a411ed3b5eb26871a4c8ab8fe7 Mon Sep 17 00:00:00 2001 From: TechLord22 <37029404+TechLord22@users.noreply.github.com> Date: Thu, 7 Sep 2023 10:56:03 -0400 Subject: [PATCH] fix pipe tool click with offhand shield (#2065) --- src/main/java/gregtech/api/pipenet/block/BlockPipe.java | 1 + src/main/java/gregtech/common/EventHandlers.java | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/gregtech/api/pipenet/block/BlockPipe.java b/src/main/java/gregtech/api/pipenet/block/BlockPipe.java index 0c6d916c73d..3126eeea063 100644 --- a/src/main/java/gregtech/api/pipenet/block/BlockPipe.java +++ b/src/main/java/gregtech/api/pipenet/block/BlockPipe.java @@ -408,6 +408,7 @@ public EnumActionResult onPipeToolUsed(World world, BlockPos pos, ItemStack stac return EnumActionResult.SUCCESS; } entityPlayer.swingArm(hand); + return EnumActionResult.SUCCESS; } return EnumActionResult.PASS; } diff --git a/src/main/java/gregtech/common/EventHandlers.java b/src/main/java/gregtech/common/EventHandlers.java index 8bfa60256ff..53e11e0205f 100644 --- a/src/main/java/gregtech/common/EventHandlers.java +++ b/src/main/java/gregtech/common/EventHandlers.java @@ -5,6 +5,7 @@ import gregtech.api.items.toolitem.ToolClasses; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.pipenet.longdist.LongDistanceNetwork; +import gregtech.api.pipenet.tile.IPipeTile; import gregtech.api.unification.material.Materials; import gregtech.api.util.CapesRegistry; import gregtech.api.util.GTUtility; @@ -79,9 +80,14 @@ public static void onEntitySpawn(LivingSpawnEvent.SpecialSpawn event) { @SubscribeEvent public static void onPlayerInteractionRightClickBlock(PlayerInteractEvent.RightClickBlock event) { - if (event.getWorld().getTileEntity(event.getPos()) instanceof IGregTechTileEntity) { + // fix sneaking with shields not allowing tool interactions with GT machines + TileEntity tileEntity = event.getWorld().getTileEntity(event.getPos()); + if (tileEntity instanceof IGregTechTileEntity) { + event.setUseBlock(Event.Result.ALLOW); + } else if (tileEntity instanceof IPipeTile) { event.setUseBlock(Event.Result.ALLOW); } + ItemStack stack = event.getItemStack(); if (!stack.isEmpty() && stack.getItem() == Items.FLINT_AND_STEEL) { if (!event.getWorld().isRemote