From 17e183669feeff7d8f60a30a110c9050b8e5d6d6 Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Tue, 29 Sep 2026 19:30:05 +0200 Subject: [PATCH] cancel the visualise task for the player if they left --- .../enchantio/listeners/TunnellingListener.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/youhavetrouble/enchantio/listeners/TunnellingListener.java b/src/main/java/me/youhavetrouble/enchantio/listeners/TunnellingListener.java index de02421..21dc09f 100644 --- a/src/main/java/me/youhavetrouble/enchantio/listeners/TunnellingListener.java +++ b/src/main/java/me/youhavetrouble/enchantio/listeners/TunnellingListener.java @@ -46,10 +46,13 @@ public class TunnellingListener implements Listener { UUID uuid = event.getPlayer().getUniqueId(); if (!tunnellingEnchant.shouldVisualizeBreaking()) return; event.getPlayer().getScheduler().runAtFixedRate(Enchantio.getPlugin(Enchantio.class), (task) -> { - if (!blockBreakData.containsKey(uuid)) return; Player player = Bukkit.getPlayer(uuid); + if (player == null || !player.isOnline()) { + task.cancel(); + return; + } BlockBreakData data = blockBreakData.get(uuid); - if (player == null || !player.isOnline()) return; + if (data == null) return; long elapsedTicks = player.getWorld().getFullTime() - data.startedBreakingAtTick(); float breakSpeed = data.block.getBreakSpeed(player); float ticksNeeded = 1.0f / breakSpeed;