From cd0a5d631b81a9a20d6383921817792c486d2215 Mon Sep 17 00:00:00 2001 From: NotMyWing Date: Mon, 27 May 2024 13:28:48 +1100 Subject: [PATCH] Temporarily prevent FakePlayers from using wrenches Closes #432 --- src/main/java/appeng/hooks/WrenchClickHook.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/appeng/hooks/WrenchClickHook.java b/src/main/java/appeng/hooks/WrenchClickHook.java index 0140cd2d0..677958b01 100644 --- a/src/main/java/appeng/hooks/WrenchClickHook.java +++ b/src/main/java/appeng/hooks/WrenchClickHook.java @@ -14,6 +14,7 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; +import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -32,15 +33,13 @@ public class WrenchClickHook { if (event instanceof PlayerInteractEvent.RightClickBlock && !event.getEntityPlayer().world.isRemote) { EntityPlayer player = event.getEntityPlayer(); + if (player instanceof FakePlayer) return; + EnumHand hand = event.getHand(); BlockPos pos = event.getPos(); World world = event.getWorld(); ItemStack held = event.getItemStack(); - if (!Platform.hasPermissions(new DimensionalCoord(world, pos), player)) { - return; - } - if (player.isSneaking() && Platform.isWrench(player, held, pos)) { Block block = world.getBlockState(pos).getBlock(); TileEntity tile = world.getTileEntity(pos); @@ -48,6 +47,10 @@ public class WrenchClickHook { return; } + if (!Platform.hasPermissions(new DimensionalCoord(world, pos), player)) { + return; + } + final LookDirection dir = Platform.getPlayerRay(player, player.getEyeHeight()); final RayTraceResult mop = block.collisionRayTrace(world.getBlockState(pos), world, pos, dir.getA(), dir.getB()); if (mop != null) {