diff --git a/nms-patches/PlayerInteractManager.patch b/nms-patches/PlayerInteractManager.patch index 7572d5f695..e72026f88c 100644 --- a/nms-patches/PlayerInteractManager.patch +++ b/nms-patches/PlayerInteractManager.patch @@ -226,11 +226,11 @@ if (this.gamemode == WorldSettings.EnumGamemode.SPECTATOR) { TileEntity tileentity = world.getTileEntity(blockposition); -@@ -329,6 +464,72 @@ +@@ -329,6 +464,74 @@ return itemstack.placeItem(entityhuman, world, blockposition, enumhand, enumdirection, f, f1, f2); } } -+ // Interract event */ ++ // Interact event */ + IBlockData blockdata = world.getType(blockposition); + EnumInteractionResult result = EnumInteractionResult.FAIL; + if (blockdata.getBlock() != Blocks.AIR) { @@ -239,6 +239,8 @@ + if (this.gamemode == WorldSettings.EnumGamemode.SPECTATOR) { + TileEntity tileentity = world.getTileEntity(blockposition); + cancelledBlock = !(tileentity instanceof ITileInventory || tileentity instanceof IInventory); ++ } else { ++ cancelledBlock = !(!entityhuman.isSneaking() || entityhuman.getItemInMainHand() == null && entityhuman.getItemInOffHand() == null); // From above + } + + if (!entityhuman.getBukkitEntity().isOp() && itemstack != null && Block.asBlock(itemstack.getItem()) instanceof BlockCommand) {