package tc.oc.pgm.filters.matcher.damage; import java.util.Optional; import org.bukkit.entity.Entity; import org.bukkit.event.Event; import tc.oc.pgm.filters.Filter; import tc.oc.pgm.filters.operator.TransformedFilter; import tc.oc.pgm.filters.query.IDamageQuery; import tc.oc.pgm.filters.query.IEntityEventQuery; import tc.oc.pgm.match.Match; import tc.oc.pgm.tracker.damage.EntityInfo; public class DamagerFilter extends TransformedFilter<IDamageQuery, IEntityEventQuery> { public DamagerFilter(Filter filter) { super(filter); } @Override protected Optional<IEntityEventQuery> transformQuery(IDamageQuery query) { return query.getDamageInfo() .damager() .filter(damager -> damager instanceof EntityInfo) .map(damager -> new IEntityEventQuery() { @Override public Class<? extends Entity> getEntityType() { return ((EntityInfo) damager).getEntityClass(); } @Override public Event getEvent() { return query.getEvent(); } @Override public Match getMatch() { return query.getMatch(); } }); } }