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;
|
package io.github.znetworkw.znpcservers.commands;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
public class CommandInvoker {
|
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;
|
package io.github.znetworkw.znpcservers.npc.task;
|
||||||
|
|
||||||
import io.github.znetworkw.znpcservers.configuration.ConfigurationConstants;
|
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.NPC;
|
||||||
import io.github.znetworkw.znpcservers.npc.conversation.ConversationModel;
|
import io.github.znetworkw.znpcservers.npc.conversation.ConversationModel;
|
||||||
import io.github.znetworkw.znpcservers.user.ZUser;
|
import io.github.znetworkw.znpcservers.user.ZUser;
|
||||||
|
@ -10,8 +9,8 @@ import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
public class NPCUpdateTask extends BukkitRunnable {
|
public class NPCVisibilityTask extends BukkitRunnable {
|
||||||
public NPCUpdateTask(Plugin serversNPC) {
|
public NPCVisibilityTask(Plugin serversNPC) {
|
||||||
runTaskTimerAsynchronously(serversNPC, 60L, 10L);
|
runTaskTimerAsynchronously(serversNPC, 60L, 10L);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +25,6 @@ public class NPCUpdateTask extends BukkitRunnable {
|
||||||
}
|
}
|
||||||
if (canSeeNPC) {
|
if (canSeeNPC) {
|
||||||
if (!npc.getViewers().contains(zUser)) npc.spawn(zUser);
|
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);
|
npc.getHologram().updateNames(zUser);
|
||||||
ConversationModel conversationStorage = npc.getNpcPojo().getConversation();
|
ConversationModel conversationStorage = npc.getNpcPojo().getConversation();
|
||||||
if (conversationStorage != null && conversationStorage.getConversationType() == ConversationModel.ConversationType.RADIUS) npc.tryStartConversation(player);
|
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.NPCModel;
|
||||||
import io.github.znetworkw.znpcservers.npc.NPCPath;
|
import io.github.znetworkw.znpcservers.npc.NPCPath;
|
||||||
import io.github.znetworkw.znpcservers.npc.NPCType;
|
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.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.user.ZUser;
|
||||||
import io.github.znetworkw.znpcservers.utility.BungeeUtils;
|
import io.github.znetworkw.znpcservers.utility.BungeeUtils;
|
||||||
import io.github.znetworkw.znpcservers.utility.SchedulerUtils;
|
import io.github.znetworkw.znpcservers.utility.SchedulerUtils;
|
||||||
|
@ -88,8 +88,8 @@ public class ZNPCsPlus extends JavaPlugin {
|
||||||
SCHEDULER = new SchedulerUtils(this);
|
SCHEDULER = new SchedulerUtils(this);
|
||||||
BUNGEE_UTILS = new BungeeUtils(this);
|
BUNGEE_UTILS = new BungeeUtils(this);
|
||||||
Bukkit.getOnlinePlayers().forEach(ZUser::find);
|
Bukkit.getOnlinePlayers().forEach(ZUser::find);
|
||||||
new NPCPathTask(this);
|
new NPCPositionTask(this);
|
||||||
new NPCUpdateTask(this);
|
new NPCVisibilityTask(this);
|
||||||
new NPCSaveTask(this, ConfigurationConstants.SAVE_DELAY);
|
new NPCSaveTask(this, ConfigurationConstants.SAVE_DELAY);
|
||||||
new PlayerListener(this);
|
new PlayerListener(this);
|
||||||
new InventoryListener(this);
|
new InventoryListener(this);
|
||||||
|
|
Loading…
Reference in a new issue