package tc.oc.pgm.filters.matcher.entity; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import tc.oc.pgm.filters.matcher.TypedFilter; import tc.oc.pgm.filters.query.IEntityTypeQuery; public class EntityTypeFilter extends TypedFilter.Impl<IEntityTypeQuery> { private final @Inspect Class<? extends Entity> type; public EntityTypeFilter(Class<? extends Entity> type) { this.type = type; } public EntityTypeFilter(EntityType type) { this(type.getEntityClass()); } public Class<? extends Entity> getEntityType() { return type; } @Override public boolean matches(IEntityTypeQuery query) { return type.isAssignableFrom(query.getEntityType()); } @Override public String toString() { return getClass().getSimpleName() + "{type=" + this.type.getSimpleName() + "}"; } }