diff --git a/src/net/jitse/npclib/listeners/PacketListener.java b/src/net/jitse/npclib/listeners/PacketListener.java index 1deb175..ac7729e 100644 --- a/src/net/jitse/npclib/listeners/PacketListener.java +++ b/src/net/jitse/npclib/listeners/PacketListener.java @@ -39,7 +39,6 @@ public class PacketListener { @Override public Object onPacketInAsync(Player player, Channel channel, Object packet) { - if (packetPlayInUseEntityClazz.isInstance(packet)) { NPC npc = NPCManager.getAllNPCs().stream().filter( check -> check.isActuallyShown(player) && check.getEntityId() == (int) entityIdField.get(packet)) diff --git a/src/net/jitse/npclib/listeners/PlayerListener.java b/src/net/jitse/npclib/listeners/PlayerListener.java index cff5a98..b06bb7a 100644 --- a/src/net/jitse/npclib/listeners/PlayerListener.java +++ b/src/net/jitse/npclib/listeners/PlayerListener.java @@ -14,29 +14,13 @@ 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.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; /** * @author Jitse Boonstra */ public class PlayerListener implements Listener { - - @EventHandler - public void onPlayerQuit(PlayerQuitEvent event) { - Player player = event.getPlayer(); - for (NPC npc : NPCManager.getAllNPCs()) { - if (npc.getAutoHidden().contains(player.getUniqueId())) { - npc.getAutoHidden().remove(player.getUniqueId()); - } - - // Don't need to use NPC#hide since the entity is not registered in the NMS server. - if (npc.getShown().contains(player.getUniqueId())) { - npc.getShown().remove(player.getUniqueId()); - } - } - } - + @EventHandler public void onPlayerChangedWorld(PlayerChangedWorldEvent event) { Player player = event.getPlayer(); diff --git a/src/net/jitse/npclib/listeners/player/PlayerQuitListener.java b/src/net/jitse/npclib/listeners/player/PlayerQuitListener.java new file mode 100644 index 0000000..becb046 --- /dev/null +++ b/src/net/jitse/npclib/listeners/player/PlayerQuitListener.java @@ -0,0 +1,32 @@ +/* + * 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.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerQuitEvent; + +/** + * @author Jitse Boonstra + */ +public class PlayerQuitListener implements Listener { + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) { + Player player = event.getPlayer(); + for (NPC npc : NPCManager.getAllNPCs()) { + if (npc.getAutoHidden().contains(player.getUniqueId())) { + npc.getAutoHidden().remove(player.getUniqueId()); + } + + if (npc.isActuallyShown(player)) { + npc.hide(player); + } + } + } +} diff --git a/src/net/jitse/npclib/nms/v1_12_R1/NPC_V1_12_R1.java b/src/net/jitse/npclib/nms/v1_12_R1/NPC_V1_12_R1.java index ace0d82..154b40c 100644 --- a/src/net/jitse/npclib/nms/v1_12_R1/NPC_V1_12_R1.java +++ b/src/net/jitse/npclib/nms/v1_12_R1/NPC_V1_12_R1.java @@ -82,9 +82,9 @@ public class NPC_V1_12_R1 extends NPC { hologram.spawn(player); - + // Todo: Test this new delay speed (custom skin render issue). Bukkit.getScheduler().runTaskLater(plugin, () -> - playerConnection.sendPacket(packetPlayOutPlayerInfoRemove), 5); + playerConnection.sendPacket(packetPlayOutPlayerInfoRemove), 10); } @Override diff --git a/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityTeleportWrapper.java b/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityTeleportWrapper.java new file mode 100644 index 0000000..7624b2e --- /dev/null +++ b/src/net/jitse/npclib/nms/v1_12_R1/packets/PacketPlayOutEntityTeleportWrapper.java @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2018 Jitse Boonstra + */ + +package net.jitse.npclib.nms.v1_12_R1.packets; + +/** + * @author Jitse Boonstra + */ +public class PacketPlayOutEntityTeleportWrapper { + + +}