From 07d086b26f1419743bb152dfef1f91f78e8a353d Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Thu, 1 Oct 2026 16:00:56 +0200 Subject: [PATCH] fix tunnelling breaking visualisation when gamerule advance_time is set to false --- pom.xml | 2 +- .../enchantio/listeners/TunnellingListener.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 0b239d5..ab306d8 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ 21 UTF-8 - 1.16.0 + 1.16.1 https://youhavetrouble.me diff --git a/src/main/java/me/youhavetrouble/enchantio/listeners/TunnellingListener.java b/src/main/java/me/youhavetrouble/enchantio/listeners/TunnellingListener.java index 3a80494..849317a 100644 --- a/src/main/java/me/youhavetrouble/enchantio/listeners/TunnellingListener.java +++ b/src/main/java/me/youhavetrouble/enchantio/listeners/TunnellingListener.java @@ -53,7 +53,8 @@ public class TunnellingListener implements Listener { } BlockBreakData data = blockBreakData.get(uuid); if (data == null) return; - long elapsedTicks = player.getWorld().getFullTime() - data.startedBreakingAtTick(); + long elapsed = System.currentTimeMillis() - data.startedBreakingAt(); + long elapsedTicks = elapsed / 50; float breakSpeed = data.block.getBreakSpeed(player); float ticksNeeded = 1.0f / breakSpeed; float progress = Math.min(elapsedTicks / ticksNeeded, 1.0f); @@ -74,7 +75,7 @@ public class TunnellingListener implements Listener { if (blockBreakData.containsKey(player.getUniqueId())) return; Block block = event.getBlock(); Set blocksToBreak = getSquare(block, event.getBlockFace(), tunnellingEnchant.getBlocksPerLevel() * enchantLevel); - blockBreakData.put(player.getUniqueId(), new BlockBreakData(block, block.getWorld().getFullTime(), event.getBlockFace(), blocksToBreak)); + blockBreakData.put(player.getUniqueId(), new BlockBreakData(block, System.currentTimeMillis(), event.getBlockFace(), blocksToBreak)); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @@ -173,6 +174,6 @@ public class TunnellingListener implements Listener { return blocks; } - private record BlockBreakData(Block block, long startedBreakingAtTick, BlockFace blockFace, Set blocksToSyncDamage) {} + private record BlockBreakData(Block block, long startedBreakingAt, BlockFace blockFace, Set blocksToSyncDamage) {} }