diff --git a/src/net/jitse/npclib/NPCLib.java b/src/net/jitse/npclib/NPCLib.java index 11c957b..b154612 100644 --- a/src/net/jitse/npclib/NPCLib.java +++ b/src/net/jitse/npclib/NPCLib.java @@ -9,7 +9,8 @@ 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.listeners.world.ChunkLoadListener; +import net.jitse.npclib.listeners.world.ChunkUnloadListener; import net.jitse.npclib.skin.Skin; import net.jitse.npclib.version.Version; import org.bukkit.ChatColor; @@ -52,7 +53,8 @@ public class NPCLib { pluginManager.registerEvents(new PlayerChangedWorldListener(), plugin); pluginManager.registerEvents(new PlayerQuitListener(), plugin); pluginManager.registerEvents(new PlayerMoveOrTeleportListener(), plugin); - pluginManager.registerEvents(new ChunkListener(), plugin); + pluginManager.registerEvents(new ChunkLoadListener(), plugin); + pluginManager.registerEvents(new ChunkUnloadListener(), plugin); new PacketListener().start(plugin); } diff --git a/src/net/jitse/npclib/listeners/world/ChunkListener.java b/src/net/jitse/npclib/listeners/world/ChunkLoadListener.java similarity index 65% rename from src/net/jitse/npclib/listeners/world/ChunkListener.java rename to src/net/jitse/npclib/listeners/world/ChunkLoadListener.java index 3decf1b..618c6cd 100644 --- a/src/net/jitse/npclib/listeners/world/ChunkListener.java +++ b/src/net/jitse/npclib/listeners/world/ChunkLoadListener.java @@ -12,37 +12,13 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.world.ChunkLoadEvent; -import org.bukkit.event.world.ChunkUnloadEvent; import java.util.UUID; /** - * @author Jitse Boonstras + * @author Jitse Boonstra */ -public class ChunkListener implements Listener { - - @EventHandler - public void onChunkUnload(ChunkUnloadEvent event) { - Chunk chunk = event.getChunk(); - - for (NPC npc : NPCManager.getAllNPCs()) { - Chunk npcChunk = npc.getLocation().getChunk(); - - if (chunk.equals(npcChunk)) { - // Unloaded chunk with NPC in it. Hiding it from all players currently shown to. - - for (UUID uuid : npc.getShown()) { - // Safety check so it doesn't send packets if the NPC has already - // been automatically despawned by the system. - if (npc.getAutoHidden().contains(uuid)) { - continue; - } - - npc.hide(Bukkit.getPlayer(uuid), true); - } - } - } - } +public class ChunkLoadListener implements Listener { @EventHandler public void onChunkLoad(ChunkLoadEvent event) { diff --git a/src/net/jitse/npclib/listeners/world/ChunkUnloadListener.java b/src/net/jitse/npclib/listeners/world/ChunkUnloadListener.java new file mode 100644 index 0000000..a88bbe9 --- /dev/null +++ b/src/net/jitse/npclib/listeners/world/ChunkUnloadListener.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2018 Jitse Boonstra + */ + +package net.jitse.npclib.listeners.world; + +import net.jitse.npclib.NPCManager; +import net.jitse.npclib.api.NPC; +import org.bukkit.Bukkit; +import org.bukkit.Chunk; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.world.ChunkUnloadEvent; + +import java.util.UUID; + +/** + * @author Jitse Boonstra + */ +public class ChunkUnloadListener implements Listener { + + @EventHandler + public void onChunkUnload(ChunkUnloadEvent event) { + Chunk chunk = event.getChunk(); + + for (NPC npc : NPCManager.getAllNPCs()) { + Chunk npcChunk = npc.getLocation().getChunk(); + + if (chunk.equals(npcChunk)) { + // Unloaded chunk with NPC in it. Hiding it from all players currently shown to. + + for (UUID uuid : npc.getShown()) { + // Safety check so it doesn't send packets if the NPC has already + // been automatically despawned by the system. + if (npc.getAutoHidden().contains(uuid)) { + continue; + } + + npc.hide(Bukkit.getPlayer(uuid), true); + } + } + } + } +}