Moved more event listeners.
This commit is contained in:
@@ -9,7 +9,8 @@ import net.jitse.npclib.listeners.packet.PacketListener;
|
|||||||
import net.jitse.npclib.listeners.player.PlayerChangedWorldListener;
|
import net.jitse.npclib.listeners.player.PlayerChangedWorldListener;
|
||||||
import net.jitse.npclib.listeners.player.PlayerMoveOrTeleportListener;
|
import net.jitse.npclib.listeners.player.PlayerMoveOrTeleportListener;
|
||||||
import net.jitse.npclib.listeners.player.PlayerQuitListener;
|
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.skin.Skin;
|
||||||
import net.jitse.npclib.version.Version;
|
import net.jitse.npclib.version.Version;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@@ -52,7 +53,8 @@ public class NPCLib {
|
|||||||
pluginManager.registerEvents(new PlayerChangedWorldListener(), plugin);
|
pluginManager.registerEvents(new PlayerChangedWorldListener(), plugin);
|
||||||
pluginManager.registerEvents(new PlayerQuitListener(), plugin);
|
pluginManager.registerEvents(new PlayerQuitListener(), plugin);
|
||||||
pluginManager.registerEvents(new PlayerMoveOrTeleportListener(), 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);
|
new PacketListener().start(plugin);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-26
@@ -12,37 +12,13 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.world.ChunkLoadEvent;
|
import org.bukkit.event.world.ChunkLoadEvent;
|
||||||
import org.bukkit.event.world.ChunkUnloadEvent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Jitse Boonstras
|
* @author Jitse Boonstra
|
||||||
*/
|
*/
|
||||||
public class ChunkListener implements Listener {
|
public class ChunkLoadListener 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onChunkLoad(ChunkLoadEvent event) {
|
public void onChunkLoad(ChunkLoadEvent event) {
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user