diff --git a/api/src/main/java/net/jitse/npclib/listeners/PeriodicMoveListener.java b/api/src/main/java/net/jitse/npclib/listeners/PeriodicMoveListener.java index 66623e8..febfa16 100644 --- a/api/src/main/java/net/jitse/npclib/listeners/PeriodicMoveListener.java +++ b/api/src/main/java/net/jitse/npclib/listeners/PeriodicMoveListener.java @@ -1,8 +1,6 @@ package net.jitse.npclib.listeners; -import java.util.HashMap; -import java.util.UUID; - +import net.jitse.npclib.NPCLib; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -11,38 +9,42 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.scheduler.BukkitTask; -import net.jitse.npclib.NPCLib; +import java.util.HashMap; +import java.util.UUID; public class PeriodicMoveListener extends HandleMoveBase implements Listener { - private final NPCLib instance; - private final long updateInterval; + private final NPCLib instance; + private final long updateInterval; - private final HashMap tasks = new HashMap<>(); + private final HashMap tasks = new HashMap<>(); - public PeriodicMoveListener(NPCLib instance, long updateInterval) { - this.instance = instance; - this.updateInterval = updateInterval; - } + public PeriodicMoveListener(NPCLib instance, long updateInterval) { + this.instance = instance; + this.updateInterval = updateInterval; + } - private void startTask(UUID uuid) { - // purposefully using UUIDs and not holding player references - tasks.put(uuid, Bukkit.getScheduler().runTaskTimer(instance.getPlugin(), () -> { - Player player = Bukkit.getPlayer(uuid); - if (player != null) { // safety check - handleMove(player); - } - }, 1L, updateInterval)); - } + private void startTask(UUID uuid) { + // purposefully using UUIDs and not holding player references + tasks.put(uuid, Bukkit.getScheduler().runTaskTimer(instance.getPlugin(), () -> { + Player player = Bukkit.getPlayer(uuid); + if (player != null) { // safety check + handleMove(player); + } + }, 1L, updateInterval)); + } - @EventHandler - public void onPlayerJoin(PlayerJoinEvent evt) { - startTask(evt.getPlayer().getUniqueId()); - } + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + startTask(event.getPlayer().getUniqueId()); + } - @EventHandler - public void onPlayerQuit(PlayerQuitEvent evt) { - tasks.remove(evt.getPlayer().getUniqueId()).cancel(); - } + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) { + BukkitTask task = tasks.remove(event.getPlayer().getUniqueId()); + if (task != null) { + task.cancel(); + } + } }