cancel the visualise task for the player if they left

This commit is contained in:
2026-09-29 19:30:05 +02:00
parent e0f5b3a0d7
commit 17e183669f
@@ -46,10 +46,13 @@ public class TunnellingListener implements Listener {
UUID uuid = event.getPlayer().getUniqueId(); UUID uuid = event.getPlayer().getUniqueId();
if (!tunnellingEnchant.shouldVisualizeBreaking()) return; if (!tunnellingEnchant.shouldVisualizeBreaking()) return;
event.getPlayer().getScheduler().runAtFixedRate(Enchantio.getPlugin(Enchantio.class), (task) -> { event.getPlayer().getScheduler().runAtFixedRate(Enchantio.getPlugin(Enchantio.class), (task) -> {
if (!blockBreakData.containsKey(uuid)) return;
Player player = Bukkit.getPlayer(uuid); Player player = Bukkit.getPlayer(uuid);
if (player == null || !player.isOnline()) {
task.cancel();
return;
}
BlockBreakData data = blockBreakData.get(uuid); BlockBreakData data = blockBreakData.get(uuid);
if (player == null || !player.isOnline()) return; if (data == null) return;
long elapsedTicks = player.getWorld().getFullTime() - data.startedBreakingAtTick(); long elapsedTicks = player.getWorld().getFullTime() - data.startedBreakingAtTick();
float breakSpeed = data.block.getBreakSpeed(player); float breakSpeed = data.block.getBreakSpeed(player);
float ticksNeeded = 1.0f / breakSpeed; float ticksNeeded = 1.0f / breakSpeed;