diff --git a/src/net/jitse/npclib/NPCLib.java b/src/net/jitse/npclib/NPCLib.java index 6a2f721..11c957b 100644 --- a/src/net/jitse/npclib/NPCLib.java +++ b/src/net/jitse/npclib/NPCLib.java @@ -5,9 +5,11 @@ package net.jitse.npclib; import net.jitse.npclib.api.NPC; -import net.jitse.npclib.listeners.ChunkListener; -import net.jitse.npclib.listeners.PacketListener; -import net.jitse.npclib.listeners.PlayerListener; +import net.jitse.npclib.listeners.packet.PacketListener; +import net.jitse.npclib.listeners.player.PlayerChangedWorldListener; +import net.jitse.npclib.listeners.player.PlayerMoveOrTeleportListener; +import net.jitse.npclib.listeners.player.PlayerQuitListener; +import net.jitse.npclib.listeners.world.ChunkListener; import net.jitse.npclib.skin.Skin; import net.jitse.npclib.version.Version; import org.bukkit.ChatColor; @@ -47,7 +49,9 @@ public class NPCLib { private void registerInternal() { PluginManager pluginManager = server.getPluginManager(); - pluginManager.registerEvents(new PlayerListener(), plugin); + pluginManager.registerEvents(new PlayerChangedWorldListener(), plugin); + pluginManager.registerEvents(new PlayerQuitListener(), plugin); + pluginManager.registerEvents(new PlayerMoveOrTeleportListener(), plugin); pluginManager.registerEvents(new ChunkListener(), plugin); new PacketListener().start(plugin); diff --git a/src/net/jitse/npclib/listeners/PacketListener.java b/src/net/jitse/npclib/listeners/packet/PacketListener.java similarity index 98% rename from src/net/jitse/npclib/listeners/PacketListener.java rename to src/net/jitse/npclib/listeners/packet/PacketListener.java index ac7729e..432c273 100644 --- a/src/net/jitse/npclib/listeners/PacketListener.java +++ b/src/net/jitse/npclib/listeners/packet/PacketListener.java @@ -2,7 +2,7 @@ * Copyright (c) 2018 Jitse Boonstra */ -package net.jitse.npclib.listeners; +package net.jitse.npclib.listeners.packet; import com.comphenix.tinyprotocol.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; diff --git a/src/net/jitse/npclib/listeners/player/PlayerChangedWorldListener.java b/src/net/jitse/npclib/listeners/player/PlayerChangedWorldListener.java new file mode 100644 index 0000000..11a83ca --- /dev/null +++ b/src/net/jitse/npclib/listeners/player/PlayerChangedWorldListener.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2018 Jitse Boonstra + */ + +package net.jitse.npclib.listeners.player; + +import net.jitse.npclib.NPCManager; +import net.jitse.npclib.api.NPC; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerChangedWorldEvent; + +/** + * @author Jitse Boonstra + */ +public class PlayerChangedWorldListener implements Listener { + + @EventHandler + public void onPlayerChangedWorld(PlayerChangedWorldEvent event) { + Player player = event.getPlayer(); + World from = event.getFrom(); + + // The PlayerTeleportEvent is call, and will handle visibility in the new world. + for (NPC npc : NPCManager.getAllNPCs()) { + if (npc.getLocation().getWorld().equals(from)) { + if (!npc.getAutoHidden().contains(player.getUniqueId())) { + npc.getAutoHidden().add(player.getUniqueId()); + npc.hide(player, true); + } + } + } + } +} diff --git a/src/net/jitse/npclib/listeners/PlayerListener.java b/src/net/jitse/npclib/listeners/player/PlayerMoveOrTeleportListener.java similarity index 76% rename from src/net/jitse/npclib/listeners/PlayerListener.java rename to src/net/jitse/npclib/listeners/player/PlayerMoveOrTeleportListener.java index b06bb7a..b4e42c6 100644 --- a/src/net/jitse/npclib/listeners/PlayerListener.java +++ b/src/net/jitse/npclib/listeners/player/PlayerMoveOrTeleportListener.java @@ -2,7 +2,7 @@ * Copyright (c) 2018 Jitse Boonstra */ -package net.jitse.npclib.listeners; +package net.jitse.npclib.listeners.player; import net.jitse.npclib.NPCManager; import net.jitse.npclib.api.NPC; @@ -12,30 +12,13 @@ import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerTeleportEvent; /** * @author Jitse Boonstra */ -public class PlayerListener implements Listener { - - @EventHandler - public void onPlayerChangedWorld(PlayerChangedWorldEvent event) { - Player player = event.getPlayer(); - World from = event.getFrom(); - - // The PlayerTeleportEvent is call, and will handle visibility in the new world. - for (NPC npc : NPCManager.getAllNPCs()) { - if (npc.getLocation().getWorld().equals(from)) { - if (!npc.getAutoHidden().contains(player.getUniqueId())) { - npc.getAutoHidden().add(player.getUniqueId()); - npc.hide(player, true); - } - } - } - } +public class PlayerMoveOrTeleportListener implements Listener { @EventHandler public void onPlayerMove(PlayerMoveEvent event) { diff --git a/src/net/jitse/npclib/listeners/ChunkListener.java b/src/net/jitse/npclib/listeners/world/ChunkListener.java similarity index 98% rename from src/net/jitse/npclib/listeners/ChunkListener.java rename to src/net/jitse/npclib/listeners/world/ChunkListener.java index 4094128..3decf1b 100644 --- a/src/net/jitse/npclib/listeners/ChunkListener.java +++ b/src/net/jitse/npclib/listeners/world/ChunkListener.java @@ -2,7 +2,7 @@ * Copyright (c) 2018 Jitse Boonstra */ -package net.jitse.npclib.listeners; +package net.jitse.npclib.listeners.world; import net.jitse.npclib.NPCManager; import net.jitse.npclib.api.NPC;