From d7fc0c81e523c33b531f6b937ac052b20845390a Mon Sep 17 00:00:00 2001 From: Mooselk <44407652+Mooselk@users.noreply.github.com> Date: Thu, 14 May 2020 16:09:47 -0700 Subject: [PATCH 1/2] Fixed NPE --- .../net/jitse/npclib/listeners/PeriodicMoveListener.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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..2f99bbd 100644 --- a/api/src/main/java/net/jitse/npclib/listeners/PeriodicMoveListener.java +++ b/api/src/main/java/net/jitse/npclib/listeners/PeriodicMoveListener.java @@ -42,7 +42,10 @@ public class PeriodicMoveListener extends HandleMoveBase implements Listener { @EventHandler public void onPlayerQuit(PlayerQuitEvent evt) { - tasks.remove(evt.getPlayer().getUniqueId()).cancel(); + BukkitTask task = tasks.remove(evt.getPlayer().getUniqueId()); + if (task != null) { + task.cancel(); + } } } From e4dc20e3ce06221f31fdee08c50c208afbf8c99e Mon Sep 17 00:00:00 2001 From: Jitse Boonstra Date: Mon, 22 Jun 2020 18:19:33 +0200 Subject: [PATCH 2/2] Changed 'evt' naming to 'event' naming to match rest of project Code refactor from old PR --- .../listeners/PeriodicMoveListener.java | 71 +++++++++---------- 1 file changed, 35 insertions(+), 36 deletions(-) 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 2f99bbd..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,41 +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 HashMap tasks = new HashMap<>(); - - 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)); - } - - @EventHandler - public void onPlayerJoin(PlayerJoinEvent evt) { - startTask(evt.getPlayer().getUniqueId()); - } - - @EventHandler - public void onPlayerQuit(PlayerQuitEvent evt) { - BukkitTask task = tasks.remove(evt.getPlayer().getUniqueId()); - if (task != null) { - task.cancel(); - } - } + private final NPCLib instance; + private final long updateInterval; + + private final HashMap tasks = new HashMap<>(); + + 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)); + } + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + startTask(event.getPlayer().getUniqueId()); + } + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) { + BukkitTask task = tasks.remove(event.getPlayer().getUniqueId()); + if (task != null) { + task.cancel(); + } + } }