package tc.oc.pgm.modules; import org.bukkit.entity.Arrow; import org.bukkit.event.Listener; import tc.oc.time.Time; import tc.oc.pgm.Config; import tc.oc.pgm.events.ListenerScope; import tc.oc.pgm.match.MatchModule; import tc.oc.pgm.match.MatchScope; import tc.oc.pgm.match.Repeatable; /** * Reduce the lifespan of infinity arrows */ @ListenerScope(MatchScope.RUNNING) public class ArrowRemovalMatchModule extends MatchModule implements Listener { private final long maxTicks = Config.ArrowRemoval.delay() * 20; @Repeatable(interval = @Time(seconds = 1)) public void repeat() { for(Arrow arrow : getMatch().getWorld().getEntitiesByClass(Arrow.class)) { if(arrow.getTicksLived() >= this.maxTicks && arrow.getPickupRule() != Arrow.PickupRule.ALLOWED) arrow.remove(); } } }