package com.github.jamesnorris.ablockalypse.event.bukkit; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.CreatureSpawnEvent; import com.github.jamesnorris.ablockalypse.Ablockalypse; import com.github.jamesnorris.ablockalypse.DataContainer; import com.github.jamesnorris.ablockalypse.aspect.ZAPlayer; import com.github.jamesnorris.ablockalypse.enumerated.Setting; public class CreatureSpawn implements Listener { private DataContainer data = Ablockalypse.getData(); @EventHandler(priority = EventPriority.HIGHEST) public void CSE(CreatureSpawnEvent event) { Entity entity = event.getEntity(); if (!(Boolean) Setting.PREVENT_NEARBY_SPAWNING.getSetting() || entity instanceof Player || !(entity instanceof LivingEntity) || data.isZAMob((LivingEntity) entity)) { return; } for (ZAPlayer zap : data.getObjectsOfType(ZAPlayer.class)) { if (!entity.getLocation().getWorld().getName().equals(zap.getPlayer().getWorld().getName())) { continue; } if (entity.getLocation().distanceSquared(zap.getPlayer().getLocation()) <= Math.pow((Integer) Setting.PREVENT_NEARBY_SPAWNING_RADIUS.getSetting(), 2)) { event.setCancelled(true); } } } }