diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoorBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoorBlockBehavior.java index 6c5dd7a4e..b63a7511c 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoorBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DoorBlockBehavior.java @@ -37,6 +37,7 @@ import org.bukkit.block.data.Bisected; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.type.Door; import org.bukkit.event.block.BlockRedstoneEvent; +import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; import javax.annotation.Nullable; @@ -133,8 +134,8 @@ public class DoorBlockBehavior extends AbstractCanSurviveBlockBehavior { if (blockState == null || blockState.isEmpty()) return superMethod.call(); org.bukkit.entity.Player bukkitPlayer = FastNMS.INSTANCE.method$ServerPlayer$getBukkitEntity(player); BukkitServerPlayer cePlayer = BukkitCraftEngine.instance().adapt(bukkitPlayer); - Item item = cePlayer.getItemInHand(InteractionHand.MAIN_HAND); - if (preventsBlockDrops(cePlayer) || !hasCorrectToolForDrops(blockState, item)) { + Item item = cePlayer.getItemInHand(InteractionHand.MAIN_HAND); + if (preventsBlockDrops(cePlayer) || !BlockStateUtils.isCorrectTool(blockState, item)) { preventDropFromBottomPart(level, pos, blockState, player); } return superMethod.call(); @@ -154,13 +155,6 @@ public class DoorBlockBehavior extends AbstractCanSurviveBlockBehavior { } } - private boolean hasCorrectToolForDrops(ImmutableBlockState state, @Nullable Item item) { - if (item == null) return !state.settings().requireCorrectTool(); - return !state.settings().requireCorrectTool() - || state.settings().isCorrectTool(item.id()) - || (state.settings().respectToolComponent() && FastNMS.INSTANCE.method$ItemStack$isCorrectToolForDrops(item.getLiteralObject(), state)); - } - private boolean preventsBlockDrops(BukkitServerPlayer cePlayer) { return VersionHelper.isOrAbove1_21_5() ? cePlayer.canInstabuild() : cePlayer.isCreativeMode(); }