diff --git a/api/src/main/java/lol/pyr/znpcsplus/api/npc/Npc.java b/api/src/main/java/lol/pyr/znpcsplus/api/npc/Npc.java index 02dc725..49a185d 100644 --- a/api/src/main/java/lol/pyr/znpcsplus/api/npc/Npc.java +++ b/api/src/main/java/lol/pyr/znpcsplus/api/npc/Npc.java @@ -5,6 +5,7 @@ import lol.pyr.znpcsplus.api.hologram.Hologram; import lol.pyr.znpcsplus.api.interaction.InteractionAction; import lol.pyr.znpcsplus.util.NpcLocation; import org.bukkit.World; +import org.bukkit.entity.Player; import java.util.List; import java.util.UUID; @@ -20,4 +21,8 @@ public interface Npc extends PropertyHolder { UUID getUuid(); World getWorld(); List getActions(); + boolean isVisibleTo(Player player); + void hide(Player player); + void show(Player player); + void respawn(Player player); } diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/util/Viewable.java b/plugin/src/main/java/lol/pyr/znpcsplus/util/Viewable.java index 3b62050..8bd8f56 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/util/Viewable.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/util/Viewable.java @@ -3,11 +3,11 @@ package lol.pyr.znpcsplus.util; import org.bukkit.entity.Player; import java.util.Collections; -import java.util.HashSet; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; public abstract class Viewable { - private final Set viewers = new HashSet<>(); + private final Set viewers = ConcurrentHashMap.newKeySet(); public void delete() { UNSAFE_hideAll();