diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java index 652232ecf..1ff40f0f5 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java @@ -314,7 +314,7 @@ public class PacketConsumers { && !(boolean) Reflections.method$ItemStack$canBreakBlockInAdventureMode.invoke( itemStack, blockInWorld )) { - player.abortMiningBlock(); + player.preventMiningBlock(); return; } } else { @@ -322,7 +322,7 @@ public class PacketConsumers { && !(boolean) Reflections.method$ItemStack$canDestroy.invoke( itemStack, Reflections.instance$BuiltInRegistries$BLOCK, blockInWorld )) { - player.abortMiningBlock(); + player.preventMiningBlock(); return; } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java index 84698bc75..7828f7562 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java @@ -365,6 +365,13 @@ public class BukkitServerPlayer extends Player { setIsDestroyingBlock(false, false); } + @Override + public void preventMiningBlock() { + setCanBreakBlock(false); + setIsDestroyingBlock(false, false); + abortMiningBlock(); + } + private void resetEffect(Object mobEffect) throws ReflectiveOperationException { Object effectInstance = Reflections.method$ServerPlayer$getEffect.invoke(serverPlayer(), mobEffect); Object packet; diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/player/Player.java b/core/src/main/java/net/momirealms/craftengine/core/entity/player/Player.java index 7465a7fbd..0c79bebf1 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/player/Player.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/player/Player.java @@ -27,6 +27,8 @@ public abstract class Player extends Entity implements NetWorkUser { public abstract void stopMiningBlock(); + public abstract void preventMiningBlock(); + public abstract void abortMiningBlock(); public abstract double getInteractionRange();