24 lines
1 KiB
Java
24 lines
1 KiB
Java
package lol.pyr.znpcsplus.tasks;
|
|
|
|
import io.github.znetworkw.znpcservers.configuration.ConfigurationConstants;
|
|
import lol.pyr.znpcsplus.npc.NPC;
|
|
import lol.pyr.znpcsplus.npc.NPCRegistry;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.Plugin;
|
|
import org.bukkit.scheduler.BukkitRunnable;
|
|
|
|
public class NPCVisibilityTask extends BukkitRunnable {
|
|
public NPCVisibilityTask(Plugin plugin) {
|
|
runTaskTimerAsynchronously(plugin, 60L, 10L);
|
|
}
|
|
|
|
public void run() {
|
|
int distSq = ConfigurationConstants.VIEW_DISTANCE * ConfigurationConstants.VIEW_DISTANCE;
|
|
for (NPC npc : NPCRegistry.all()) for (Player player : Bukkit.getOnlinePlayers()) {
|
|
boolean inRange = (player.getWorld() == npc.getWorld() && player.getLocation().distanceSquared(npc.getLocation().toBukkitLocation(npc.getWorld())) <= distSq);
|
|
if (!inRange && npc.isShown(player)) npc.hide(player);
|
|
if (inRange && !npc.isShown(player)) npc.show(player);
|
|
}
|
|
}
|
|
}
|