fix tunnelling breaking visualisation when gamerule advance_time is set to false

This commit is contained in:
2026-10-01 16:00:56 +02:00
parent 6335252b8a
commit 07d086b26f
2 changed files with 5 additions and 4 deletions
+1 -1
View File
@@ -15,7 +15,7 @@
<properties>
<java.version>21</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<revision>1.16.0</revision>
<revision>1.16.1</revision>
</properties>
<url>https://youhavetrouble.me</url>
@@ -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<Block> 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<Block> blocksToSyncDamage) {}
private record BlockBreakData(Block block, long startedBreakingAt, BlockFace blockFace, Set<Block> blocksToSyncDamage) {}
}