diff --git a/api/pom.xml b/api/pom.xml
index b4ec98b..54dbfef 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib
- 1.1
+ 1.1.1
npclib-api
diff --git a/commons/pom.xml b/commons/pom.xml
index de0d179..9c7aef3 100644
--- a/commons/pom.xml
+++ b/commons/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib
- 1.1
+ 1.1.1
npclib-commons
diff --git a/commons/src/main/java/net/jitse/npclib/api/NPC.java b/commons/src/main/java/net/jitse/npclib/api/NPC.java
index ca7b90b..6c20b7e 100644
--- a/commons/src/main/java/net/jitse/npclib/api/NPC.java
+++ b/commons/src/main/java/net/jitse/npclib/api/NPC.java
@@ -57,7 +57,12 @@ public abstract class NPC {
return gameProfile;
}
+
public void destroy() {
+ destroy(true);
+ }
+
+ public void destroy(boolean scheduler) {
NPCManager.remove(this);
// Destroy NPC for every player that is still seeing it.
@@ -66,7 +71,7 @@ public abstract class NPC {
continue;
}
- hide(Bukkit.getPlayer(uuid), true);
+ hide(Bukkit.getPlayer(uuid), true, scheduler);
}
}
@@ -131,10 +136,10 @@ public abstract class NPC {
protected abstract void sendShowPackets(Player player);
public void hide(Player player) {
- hide(player, false);
+ hide(player, false, true);
}
- public void hide(Player player, boolean auto) {
+ public void hide(Player player, boolean auto, boolean scheduler) {
NPCDestroyEvent event = new NPCDestroyEvent(this, player, auto ? TriggerType.AUTOMATIC : TriggerType.MANUAL);
plugin.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -142,7 +147,7 @@ public abstract class NPC {
}
if (auto) {
- sendHidePackets(player);
+ sendHidePackets(player, scheduler);
} else {
if (!shown.contains(player.getUniqueId())) {
throw new RuntimeException("Cannot call hide method without calling NPC#show.");
@@ -151,7 +156,7 @@ public abstract class NPC {
shown.remove(player.getUniqueId());
if (player.getWorld().equals(location.getWorld()) && player.getLocation().distance(location) <= autoHideDistance) {
- sendHidePackets(player);
+ sendHidePackets(player, scheduler);
} else {
if (autoHidden.contains(player.getUniqueId())) {
autoHidden.remove(player.getUniqueId());
@@ -161,5 +166,5 @@ public abstract class NPC {
}
// Internal method.
- protected abstract void sendHidePackets(Player player);
+ protected abstract void sendHidePackets(Player player, boolean scheduler);
}
diff --git a/commons/src/main/java/net/jitse/npclib/listeners/ChunkListener.java b/commons/src/main/java/net/jitse/npclib/listeners/ChunkListener.java
index 4094128..a7940e2 100644
--- a/commons/src/main/java/net/jitse/npclib/listeners/ChunkListener.java
+++ b/commons/src/main/java/net/jitse/npclib/listeners/ChunkListener.java
@@ -38,7 +38,7 @@ public class ChunkListener implements Listener {
continue;
}
- npc.hide(Bukkit.getPlayer(uuid), true);
+ npc.hide(Bukkit.getPlayer(uuid), true, true);
}
}
}
diff --git a/commons/src/main/java/net/jitse/npclib/listeners/PlayerListener.java b/commons/src/main/java/net/jitse/npclib/listeners/PlayerListener.java
index cff5a98..8b6f37e 100644
--- a/commons/src/main/java/net/jitse/npclib/listeners/PlayerListener.java
+++ b/commons/src/main/java/net/jitse/npclib/listeners/PlayerListener.java
@@ -47,7 +47,7 @@ public class PlayerListener implements Listener {
if (npc.getLocation().getWorld().equals(from)) {
if (!npc.getAutoHidden().contains(player.getUniqueId())) {
npc.getAutoHidden().add(player.getUniqueId());
- npc.hide(player, true);
+ npc.hide(player, true, false);
}
}
}
@@ -95,7 +95,7 @@ public class PlayerListener implements Listener {
} else {
// Check if the player and NPC are out of range to sendHidePackets it.
if (!inRange) {
- npc.hide(player, true);
+ npc.hide(player, true, true);
npc.getAutoHidden().add(player.getUniqueId());
}
}
diff --git a/nms/pom.xml b/nms/pom.xml
index 9fcbffd..27a68de 100644
--- a/nms/pom.xml
+++ b/nms/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib
- 1.1
+ 1.1.1
npclib-nms
diff --git a/nms/v1_10_R1/pom.xml b/nms/v1_10_R1/pom.xml
index 2b45cc1..45c7a61 100644
--- a/nms/v1_10_R1/pom.xml
+++ b/nms/v1_10_R1/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib-nms
- 1.1
+ 1.1.1
npclib-nms-v1_10_R1
diff --git a/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/NPC_v1_10_R1.java b/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/NPC_v1_10_R1.java
index 9387c26..d103215 100644
--- a/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/NPC_v1_10_R1.java
+++ b/nms/v1_10_R1/src/main/java/net/jitse/npclib/nms/v1_10_R1/NPC_v1_10_R1.java
@@ -88,7 +88,7 @@ public class NPC_v1_10_R1 extends NPC {
}
@Override
- public void sendHidePackets(Player player) {
+ public void sendHidePackets(Player player, boolean scheduler) {
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
playerConnection.sendPacket(packetPlayOutEntityDestroy);
@@ -96,8 +96,12 @@ public class NPC_v1_10_R1 extends NPC {
hologram.destroy(player);
- // Sending this a bit later so the player doesn't see the name (for that split second).
- Bukkit.getScheduler().runTaskLater(plugin, () ->
- playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ if (scheduler) {
+ // Sending this a bit later so the player doesn't see the name (for that split second).
+ Bukkit.getScheduler().runTaskLater(plugin, () ->
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ } else {
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister);
+ }
}
}
diff --git a/nms/v1_11_R1/pom.xml b/nms/v1_11_R1/pom.xml
index c7a3fbe..8e8f917 100644
--- a/nms/v1_11_R1/pom.xml
+++ b/nms/v1_11_R1/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib-nms
- 1.1
+ 1.1.1
npclib-nms-v1_11_R1
diff --git a/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/NPC_v1_11_R1.java b/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/NPC_v1_11_R1.java
index 2a5e65f..4c9e79f 100644
--- a/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/NPC_v1_11_R1.java
+++ b/nms/v1_11_R1/src/main/java/net/jitse/npclib/nms/v1_11_R1/NPC_v1_11_R1.java
@@ -88,7 +88,7 @@ public class NPC_v1_11_R1 extends NPC {
}
@Override
- public void sendHidePackets(Player player) {
+ public void sendHidePackets(Player player, boolean scheduler) {
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
playerConnection.sendPacket(packetPlayOutEntityDestroy);
@@ -96,8 +96,12 @@ public class NPC_v1_11_R1 extends NPC {
hologram.destroy(player);
- // Sending this a bit later so the player doesn't see the name (for that split second).
- Bukkit.getScheduler().runTaskLater(plugin, () ->
- playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ if (scheduler) {
+ // Sending this a bit later so the player doesn't see the name (for that split second).
+ Bukkit.getScheduler().runTaskLater(plugin, () ->
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ } else {
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister);
+ }
}
}
diff --git a/nms/v1_12_R1/pom.xml b/nms/v1_12_R1/pom.xml
index 4d82598..5ce865e 100644
--- a/nms/v1_12_R1/pom.xml
+++ b/nms/v1_12_R1/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib-nms
- 1.1
+ 1.1.1
npclib-nms-v1_12_R1
diff --git a/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/NPC_v1_12_R1.java b/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/NPC_v1_12_R1.java
index 385e3b0..9e218a1 100644
--- a/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/NPC_v1_12_R1.java
+++ b/nms/v1_12_R1/src/main/java/net/jitse/npclib/nms/v1_12_R1/NPC_v1_12_R1.java
@@ -88,7 +88,7 @@ public class NPC_v1_12_R1 extends NPC {
}
@Override
- public void sendHidePackets(Player player) {
+ public void sendHidePackets(Player player, boolean scheduler) {
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
playerConnection.sendPacket(packetPlayOutEntityDestroy);
@@ -96,8 +96,12 @@ public class NPC_v1_12_R1 extends NPC {
hologram.destroy(player);
- // Sending this a bit later so the player doesn't see the name (for that split second).
- Bukkit.getScheduler().runTaskLater(plugin, () ->
- playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ if (scheduler) {
+ // Sending this a bit later so the player doesn't see the name (for that split second).
+ Bukkit.getScheduler().runTaskLater(plugin, () ->
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ } else {
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister);
+ }
}
}
diff --git a/nms/v1_8_R1/pom.xml b/nms/v1_8_R1/pom.xml
index a297bf1..dc13553 100644
--- a/nms/v1_8_R1/pom.xml
+++ b/nms/v1_8_R1/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib-nms
- 1.1
+ 1.1.1
npclib-nms-v1_8_R1
diff --git a/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/NPC_v1_8_R1.java b/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/NPC_v1_8_R1.java
index c606689..3cb5713 100644
--- a/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/NPC_v1_8_R1.java
+++ b/nms/v1_8_R1/src/main/java/net/jitse/npclib/nms/v1_8_R1/NPC_v1_8_R1.java
@@ -87,7 +87,7 @@ public class NPC_v1_8_R1 extends NPC {
}
@Override
- public void sendHidePackets(Player player) {
+ public void sendHidePackets(Player player, boolean scheduler) {
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
playerConnection.sendPacket(packetPlayOutEntityDestroy);
@@ -95,8 +95,12 @@ public class NPC_v1_8_R1 extends NPC {
hologram.destroy(player);
- // Sending this a bit later so the player doesn't see the name (for that split second).
- Bukkit.getScheduler().runTaskLater(plugin, () ->
- playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ if (scheduler) {
+ // Sending this a bit later so the player doesn't see the name (for that split second).
+ Bukkit.getScheduler().runTaskLater(plugin, () ->
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ } else {
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister);
+ }
}
}
diff --git a/nms/v1_8_R2/pom.xml b/nms/v1_8_R2/pom.xml
index c8847ff..d893d44 100644
--- a/nms/v1_8_R2/pom.xml
+++ b/nms/v1_8_R2/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib-nms
- 1.1
+ 1.1.1
npclib-nms-v1_8_R2
diff --git a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java
index 3e15747..416fbb1 100644
--- a/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java
+++ b/nms/v1_8_R2/src/main/java/net/jitse/npclib/nms/v1_8_R2/NPC_v1_8_R2.java
@@ -88,7 +88,7 @@ public class NPC_v1_8_R2 extends NPC {
}
@Override
- public void sendHidePackets(Player player) {
+ public void sendHidePackets(Player player, boolean scheduler) {
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
playerConnection.sendPacket(packetPlayOutEntityDestroy);
@@ -96,8 +96,12 @@ public class NPC_v1_8_R2 extends NPC {
hologram.destroy(player);
- // Sending this a bit later so the player doesn't see the name (for that split second).
- Bukkit.getScheduler().runTaskLater(plugin, () ->
- playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ if (scheduler) {
+ // Sending this a bit later so the player doesn't see the name (for that split second).
+ Bukkit.getScheduler().runTaskLater(plugin, () ->
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ } else {
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister);
+ }
}
}
diff --git a/nms/v1_8_R3/pom.xml b/nms/v1_8_R3/pom.xml
index 2630197..1db9fda 100644
--- a/nms/v1_8_R3/pom.xml
+++ b/nms/v1_8_R3/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib-nms
- 1.1
+ 1.1.1
npclib-nms-v1_8_R3
diff --git a/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/NPC_v1_8_R3.java b/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/NPC_v1_8_R3.java
index 52895c1..00e4941 100644
--- a/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/NPC_v1_8_R3.java
+++ b/nms/v1_8_R3/src/main/java/net/jitse/npclib/nms/v1_8_R3/NPC_v1_8_R3.java
@@ -88,7 +88,7 @@ public class NPC_v1_8_R3 extends NPC {
}
@Override
- public void sendHidePackets(Player player) {
+ public void sendHidePackets(Player player, boolean scheduler) {
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
playerConnection.sendPacket(packetPlayOutEntityDestroy);
@@ -96,8 +96,12 @@ public class NPC_v1_8_R3 extends NPC {
hologram.destroy(player);
- // Sending this a bit later so the player doesn't see the name (for that split second).
- Bukkit.getScheduler().runTaskLater(plugin, () ->
- playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ if (scheduler) {
+ // Sending this a bit later so the player doesn't see the name (for that split second).
+ Bukkit.getScheduler().runTaskLater(plugin, () ->
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ } else {
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister);
+ }
}
}
diff --git a/nms/v1_9_R1/pom.xml b/nms/v1_9_R1/pom.xml
index 5deb888..1db6847 100644
--- a/nms/v1_9_R1/pom.xml
+++ b/nms/v1_9_R1/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib-nms
- 1.1
+ 1.1.1
npclib-nms-v1_9_R1
diff --git a/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/NPC_v1_9_R1.java b/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/NPC_v1_9_R1.java
index 36f1721..a8d7e7e 100644
--- a/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/NPC_v1_9_R1.java
+++ b/nms/v1_9_R1/src/main/java/net/jitse/npclib/nms/v1_9_R1/NPC_v1_9_R1.java
@@ -88,7 +88,7 @@ public class NPC_v1_9_R1 extends NPC {
}
@Override
- public void sendHidePackets(Player player) {
+ public void sendHidePackets(Player player, boolean scheduler) {
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
playerConnection.sendPacket(packetPlayOutEntityDestroy);
@@ -96,8 +96,12 @@ public class NPC_v1_9_R1 extends NPC {
hologram.destroy(player);
- // Sending this a bit later so the player doesn't see the name (for that split second).
- Bukkit.getScheduler().runTaskLater(plugin, () ->
- playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ if (scheduler) {
+ // Sending this a bit later so the player doesn't see the name (for that split second).
+ Bukkit.getScheduler().runTaskLater(plugin, () ->
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ } else {
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister);
+ }
}
}
diff --git a/nms/v1_9_R2/pom.xml b/nms/v1_9_R2/pom.xml
index 437d1bc..db6eddf 100644
--- a/nms/v1_9_R2/pom.xml
+++ b/nms/v1_9_R2/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib-nms
- 1.1
+ 1.1.1
npclib-nms-v1_9_R2
diff --git a/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/NPC_v1_9_R2.java b/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/NPC_v1_9_R2.java
index 21a40de..3613f37 100644
--- a/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/NPC_v1_9_R2.java
+++ b/nms/v1_9_R2/src/main/java/net/jitse/npclib/nms/v1_9_R2/NPC_v1_9_R2.java
@@ -88,7 +88,7 @@ public class NPC_v1_9_R2 extends NPC {
}
@Override
- public void sendHidePackets(Player player) {
+ public void sendHidePackets(Player player, boolean scheduler) {
PlayerConnection playerConnection = ((CraftPlayer) player).getHandle().playerConnection;
playerConnection.sendPacket(packetPlayOutEntityDestroy);
@@ -96,8 +96,12 @@ public class NPC_v1_9_R2 extends NPC {
hologram.destroy(player);
- // Sending this a bit later so the player doesn't see the name (for that split second).
- Bukkit.getScheduler().runTaskLater(plugin, () ->
- playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ if (scheduler) {
+ // Sending this a bit later so the player doesn't see the name (for that split second).
+ Bukkit.getScheduler().runTaskLater(plugin, () ->
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister), 5);
+ } else {
+ playerConnection.sendPacket(packetPlayOutScoreboardTeamUnregister);
+ }
}
}
diff --git a/plugin/pom.xml b/plugin/pom.xml
index 1360fe7..43bd364 100644
--- a/plugin/pom.xml
+++ b/plugin/pom.xml
@@ -7,7 +7,7 @@
net.jitse
npclib
- 1.1
+ 1.1.1
npclib-plugin
diff --git a/pom.xml b/pom.xml
index 84e0342..184327f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
net.jitse
npclib
- 1.1
+ 1.1.1
NPCLib
https://github.com/JitseB/npclib