From 3b62c85e7efeb6ddf52c512d7cd0fdb587306752 Mon Sep 17 00:00:00 2001 From: Kneesnap Date: Sun, 22 Sep 2019 12:18:53 -0700 Subject: [PATCH] Handle if a player was kicked, instead of quitting normally. --- .../npclib/listeners/PlayerListener.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/net/jitse/npclib/listeners/PlayerListener.java b/api/src/main/java/net/jitse/npclib/listeners/PlayerListener.java index a3a20cb..055c2f2 100755 --- a/api/src/main/java/net/jitse/npclib/listeners/PlayerListener.java +++ b/api/src/main/java/net/jitse/npclib/listeners/PlayerListener.java @@ -12,11 +12,9 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.event.player.*; /** * @author Jitse Boonstra @@ -31,12 +29,18 @@ public class PlayerListener implements Listener { @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { - Player player = event.getPlayer(); + onPlayerLeave(event.getPlayer()); + } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) + public void onPlayerKick(PlayerKickEvent event) { + onPlayerLeave(event.getPlayer()); + } + + private void onPlayerLeave(Player player) { for (SimpleNPC npc : NPCManager.getAllNPCs()) { npc.getAutoHidden().remove(player.getUniqueId()); - - // Don't need to use NPC#hide since the entity is not registered in the NMS server. - npc.getShown().remove(player.getUniqueId()); + npc.getShown().remove(player.getUniqueId()); // Don't need to use NPC#hide since the entity is not registered in the NMS server. } }