diff --git a/src/main/java/io/github/znetworkw/znpcservers/commands/CommandInvoker.java b/src/main/java/io/github/znetworkw/znpcservers/commands/CommandInvoker.java index b7545f4..1bda263 100644 --- a/src/main/java/io/github/znetworkw/znpcservers/commands/CommandInvoker.java +++ b/src/main/java/io/github/znetworkw/znpcservers/commands/CommandInvoker.java @@ -1,5 +1,7 @@ package io.github.znetworkw.znpcservers.commands; +import org.bukkit.entity.Player; + import java.lang.reflect.Method; public class CommandInvoker { diff --git a/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCPathTask.java b/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCPathTask.java deleted file mode 100644 index 21abd3b..0000000 --- a/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCPathTask.java +++ /dev/null @@ -1,15 +0,0 @@ -package io.github.znetworkw.znpcservers.npc.task; - -import io.github.znetworkw.znpcservers.npc.NPC; -import org.bukkit.plugin.Plugin; -import org.bukkit.scheduler.BukkitRunnable; - -public class NPCPathTask extends BukkitRunnable { - public NPCPathTask(Plugin serversNPC) { - runTaskTimerAsynchronously(serversNPC, 60L, 1L); - } - - public void run() { - for (NPC npc : NPC.all()) if (npc.getNpcPath() != null) npc.getNpcPath().handle(); - } -} diff --git a/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCPositionTask.java b/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCPositionTask.java new file mode 100644 index 0000000..e0f78c6 --- /dev/null +++ b/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCPositionTask.java @@ -0,0 +1,27 @@ +package io.github.znetworkw.znpcservers.npc.task; + +import io.github.znetworkw.znpcservers.npc.FunctionFactory; +import io.github.znetworkw.znpcservers.npc.NPC; +import io.github.znetworkw.znpcservers.user.ZUser; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; +import org.bukkit.scheduler.BukkitRunnable; + +public class NPCPositionTask extends BukkitRunnable { + public NPCPositionTask(Plugin serversNPC) { + runTaskTimerAsynchronously(serversNPC, 60L, 1L); + } + + public void run() { + for (NPC npc : NPC.all()) { + if (npc.getNpcPath() != null) { + npc.getNpcPath().handle(); + } + else if (FunctionFactory.isTrue(npc, "look")) for (Player player : Bukkit.getOnlinePlayers()) { + ZUser user = ZUser.find(player); + if (npc.getViewers().contains(user)) npc.lookAt(user, player.getLocation(), false); + } + } + } +} diff --git a/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCUpdateTask.java b/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCVisibilityTask.java similarity index 83% rename from src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCUpdateTask.java rename to src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCVisibilityTask.java index a4c33b9..764f07e 100644 --- a/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCUpdateTask.java +++ b/src/main/java/io/github/znetworkw/znpcservers/npc/task/NPCVisibilityTask.java @@ -1,7 +1,6 @@ package io.github.znetworkw.znpcservers.npc.task; import io.github.znetworkw.znpcservers.configuration.ConfigurationConstants; -import io.github.znetworkw.znpcservers.npc.FunctionFactory; import io.github.znetworkw.znpcservers.npc.NPC; import io.github.znetworkw.znpcservers.npc.conversation.ConversationModel; import io.github.znetworkw.znpcservers.user.ZUser; @@ -10,8 +9,8 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.scheduler.BukkitRunnable; -public class NPCUpdateTask extends BukkitRunnable { - public NPCUpdateTask(Plugin serversNPC) { +public class NPCVisibilityTask extends BukkitRunnable { + public NPCVisibilityTask(Plugin serversNPC) { runTaskTimerAsynchronously(serversNPC, 60L, 10L); } @@ -26,7 +25,6 @@ public class NPCUpdateTask extends BukkitRunnable { } if (canSeeNPC) { if (!npc.getViewers().contains(zUser)) npc.spawn(zUser); - if (FunctionFactory.isTrue(npc, "look") && npc.getNpcPath() == null) npc.lookAt(zUser, player.getLocation(), false); npc.getHologram().updateNames(zUser); ConversationModel conversationStorage = npc.getNpcPojo().getConversation(); if (conversationStorage != null && conversationStorage.getConversationType() == ConversationModel.ConversationType.RADIUS) npc.tryStartConversation(player); diff --git a/src/main/java/lol/pyr/znpcsplus/ZNPCsPlus.java b/src/main/java/lol/pyr/znpcsplus/ZNPCsPlus.java index e4bbe87..b1923ee 100644 --- a/src/main/java/lol/pyr/znpcsplus/ZNPCsPlus.java +++ b/src/main/java/lol/pyr/znpcsplus/ZNPCsPlus.java @@ -11,9 +11,9 @@ import io.github.znetworkw.znpcservers.npc.NPC; import io.github.znetworkw.znpcservers.npc.NPCModel; import io.github.znetworkw.znpcservers.npc.NPCPath; import io.github.znetworkw.znpcservers.npc.NPCType; -import io.github.znetworkw.znpcservers.npc.task.NPCPathTask; +import io.github.znetworkw.znpcservers.npc.task.NPCPositionTask; import io.github.znetworkw.znpcservers.npc.task.NPCSaveTask; -import io.github.znetworkw.znpcservers.npc.task.NPCUpdateTask; +import io.github.znetworkw.znpcservers.npc.task.NPCVisibilityTask; import io.github.znetworkw.znpcservers.user.ZUser; import io.github.znetworkw.znpcservers.utility.BungeeUtils; import io.github.znetworkw.znpcservers.utility.SchedulerUtils; @@ -88,8 +88,8 @@ public class ZNPCsPlus extends JavaPlugin { SCHEDULER = new SchedulerUtils(this); BUNGEE_UTILS = new BungeeUtils(this); Bukkit.getOnlinePlayers().forEach(ZUser::find); - new NPCPathTask(this); - new NPCUpdateTask(this); + new NPCPositionTask(this); + new NPCVisibilityTask(this); new NPCSaveTask(this, ConfigurationConstants.SAVE_DELAY); new PlayerListener(this); new InventoryListener(this);