ZNPCsPlus/src/main/java/lol/pyr/znpcsplus/tasks/NPCVisibilityTask.java
2023-04-26 18:54:00 +01:00

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);
}
}
}