package com.github.jamesnorris.ablockalypse.threading.inherent; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import com.github.jamesnorris.ablockalypse.Ablockalypse; import com.github.jamesnorris.ablockalypse.DataContainer; import com.github.jamesnorris.ablockalypse.aspect.Barrier; import com.github.jamesnorris.ablockalypse.threading.RepeatingTask; import com.github.jamesnorris.ablockalypse.utility.BukkitUtility; public class ServerBarrierActionTask extends RepeatingTask { private static final int INTERVAL = 20; private DataContainer data = Ablockalypse.getData(); public ServerBarrierActionTask(boolean autorun) { super(INTERVAL, autorun); } @Override public void run() { for (Barrier bg : data.getObjectsOfType(Barrier.class)) { if (bg.getCenter() == null) { continue; } for (Entity nearby : BukkitUtility.getNearbyEntities(bg.getCenter(), 2, 3, 2)) { if (!(nearby instanceof LivingEntity)) { continue; } if (data.isZAMob((LivingEntity) nearby)) { if (bg.getCenter().distanceSquared(nearby.getLocation()) < 4 && !bg.isBroken()) { bg.breakBarrier((LivingEntity) nearby);// will not let the mob fix if it is already } } } } } }