From 4d9d8169e8226e666159e2f955b68d3078e3d7ca Mon Sep 17 00:00:00 2001 From: halogly Date: Fri, 18 Jul 2025 16:25:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E5=BC=80=E6=BD=9C=E8=A1=8C=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/util/InteractUtils.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/InteractUtils.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/InteractUtils.java index a3e3c6292..99b3398a2 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/InteractUtils.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/util/InteractUtils.java @@ -338,20 +338,22 @@ public class InteractUtils { } public static boolean isEntityInteractable(Player player, Entity entity, Item item) { - boolean isSneaking = player.isSneaking(); if (EntityUtils.isPiglinWithGoldIngot(entity, item)) { return true; } - if (EntityUtils.isHappyGhastRideable(entity) && !isSneaking) { - return true; + if (!player.isSneaking()) { + if (EntityUtils.isHappyGhastRideable(entity)) { + return true; + } + return switch (entity) { + case Boat ignored -> true; + case RideableMinecart ignored -> true; + case Steerable steerable -> steerable.hasSaddle(); + default -> INTERACTABLE_ENTITIES.contains(entity.getType()); + }; } - return switch (entity) { - case ChestBoat ignored -> true; - case Boat ignored -> !isSneaking; - case RideableMinecart ignored -> !isSneaking; - case Steerable steerable -> !isSneaking && steerable.hasSaddle(); - default -> INTERACTABLE_ENTITIES.contains(entity.getType()); - }; + return entity instanceof ChestBoat + || INTERACTABLE_ENTITIES.contains(entity.getType()); } public static boolean willConsume(Player player, BlockData state, BlockHitResult hit, @Nullable Item item) {