fix npc looking at player being choppy & rename the tasks more appropriately
This commit is contained in:
parent
d0c37eb3cc
commit
6a0ea31074
5 changed files with 35 additions and 23 deletions
|
@ -1,5 +1,7 @@
|
|||
package io.github.znetworkw.znpcservers.commands;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class CommandInvoker {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue