Search in sources :

Example 1 with Filter

use of pl.themolka.arcade.filter.Filter in project Arcade2 by ShootGame.

the class RegionListeners method getFilterResult.

private AbstainableResult getFilterResult(Region region, RegionEventType type, Player player, GamePlayer game, Block block) {
    if (region == null) {
        return OptionalResult.ABSTAIN;
    }
    Filter filter = null;
    if (filter == null) {
        return OptionalResult.ABSTAIN;
    }
    if (game == null && player != null) {
        game = this.regions.getGame().getPlayer(player);
    }
    List<Object> data = new ArrayList<>();
    if (player != null) {
        data.add(player);
    }
    if (game != null) {
        data.add(game);
    }
    data.add(block);
    return filter.filter(data.toArray(new Object[data.size()]));
}
Also used : Filter(pl.themolka.arcade.filter.Filter) ArrayList(java.util.ArrayList)

Example 2 with Filter

use of pl.themolka.arcade.filter.Filter in project Arcade2 by ShootGame.

the class DamageRuleParser method parsePrimitive.

@Override
protected ParserResult<DamageRule.Config> parsePrimitive(Node node, String name, String value) throws ParserException {
    String id = this.parseOptionalId(node);
    Ref<Filter.Config<?>> entityFilter = this.entityFilterParser.parse(node.property("entity-filter", "filter")).orDefault(Ref.empty());
    Ref<Filter.Config<?>> playerFilter = this.playerFilterParser.parse(node.property("player-filter", "filter")).orDefault(Ref.empty());
    boolean notDenied = this.denyParser.parse(node).orDefault(true);
    double damage = notDenied ? this.damageParser.parse(node).orFail() : DamageRule.Config.DENY_DAMAGE;
    Percentage multiplier = this.multiplierParser.parse(node.property("multiplier", "multiply")).orDefault(Percentage.DONE);
    return ParserResult.fine(node, name, value, new DamageRule.Config() {

        public String id() {
            return id;
        }

        public double damage() {
            return damage;
        }

        public Ref<Filter.Config<?>> entityFilter() {
            return entityFilter;
        }

        public Percentage multiplier() {
            return multiplier;
        }

        public Ref<Filter.Config<?>> playerFilter() {
            return playerFilter;
        }
    });
}
Also used : Ref(pl.themolka.arcade.config.Ref) Percentage(pl.themolka.arcade.util.Percentage) Filter(pl.themolka.arcade.filter.Filter)

Example 3 with Filter

use of pl.themolka.arcade.filter.Filter in project Arcade2 by ShootGame.

the class PortalParser method parseNode.

@Override
protected ParserResult<Portal.Config> parseNode(Node node, String name, String value) throws ParserException {
    SpawnApply destination = this.parseDestination(node, name, value);
    Ref<Filter> filter = this.filterParser.parse(node.property("filter")).orDefault(Ref.empty());
    String id = this.parseOptionalId(node);
    Ref<Kit> kit = this.kitParser.parse(node.property("kit")).orDefault(Ref.empty());
    AbstractRegion.Config<?> region = this.regionParser.parseWithDefinition(node, name, value).orFail();
    return ParserResult.fine(node, name, value, new Portal.Config() {

        public SpawnApply destination() {
            return destination;
        }

        public Ref<Filter> filter() {
            return filter;
        }

        public String id() {
            return id;
        }

        public Ref<Kit> kit() {
            return kit;
        }

        public Ref<AbstractRegion.Config<?>> region() {
            return Ref.ofProvided(region);
        }
    });
}
Also used : Ref(pl.themolka.arcade.config.Ref) Filter(pl.themolka.arcade.filter.Filter) SpawnApply(pl.themolka.arcade.spawn.SpawnApply) Kit(pl.themolka.arcade.kit.Kit) AbstractRegion(pl.themolka.arcade.region.AbstractRegion)

Example 4 with Filter

use of pl.themolka.arcade.filter.Filter in project Arcade2 by ShootGame.

the class AutoRespawnGameParser method parseNode.

@Override
protected ParserResult<AutoRespawnGame.Config> parseNode(Node node, String name, String value) throws ParserException {
    Ref<Filter.Config<?>> filter = this.filterParser.parse(node.property("filter")).orDefault(Ref.empty());
    Time cooldown = this.cooldownParser.parse(node.property("cooldown", "after")).orDefault(PlayerDeathEvent.DEFAULT_AUTO_RESPAWN_COOLDOWN);
    return ParserResult.fine(node, name, value, new AutoRespawnGame.Config() {

        public Ref<Filter.Config<?>> filter() {
            return filter;
        }

        public Time cooldown() {
            return cooldown;
        }
    });
}
Also used : Ref(pl.themolka.arcade.config.Ref) Filter(pl.themolka.arcade.filter.Filter) Time(pl.themolka.arcade.time.Time)

Aggregations

Filter (pl.themolka.arcade.filter.Filter)4 Ref (pl.themolka.arcade.config.Ref)3 ArrayList (java.util.ArrayList)1 Kit (pl.themolka.arcade.kit.Kit)1 AbstractRegion (pl.themolka.arcade.region.AbstractRegion)1 SpawnApply (pl.themolka.arcade.spawn.SpawnApply)1 Time (pl.themolka.arcade.time.Time)1 Percentage (pl.themolka.arcade.util.Percentage)1