Skip to content

Commit

Permalink
Read predicate strategies from mappings
Browse files Browse the repository at this point in the history
  • Loading branch information
eclipseisoffline committed Jan 10, 2025
1 parent 7af9518 commit f4c9c3d
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

import com.fasterxml.jackson.databind.JsonNode;
import org.geysermc.geyser.api.item.custom.v2.predicate.ConditionProperty;
import org.geysermc.geyser.api.item.custom.v2.predicate.PredicateStrategy;
import org.geysermc.geyser.api.item.custom.v2.predicate.RangeDispatchProperty;
import org.geysermc.geyser.api.item.custom.v2.predicate.match.ChargeType;
import org.geysermc.geyser.api.util.CreativeCategory;
Expand Down Expand Up @@ -96,6 +97,8 @@ public interface NodeReader<T> {

NodeReader<CreativeCategory> CREATIVE_CATEGORY = NON_EMPTY_STRING.andThen(CreativeCategory::fromName).validate(Objects::nonNull, "unknown creative category");

NodeReader<PredicateStrategy> PREDICATE_STRATEGY = ofEnum(PredicateStrategy.class);

NodeReader<ConditionProperty> CONDITION_PROPERTY = ofEnum(ConditionProperty.class);

NodeReader<ChargeType> CHARGE_TYPE = ofEnum(ChargeType.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import org.geysermc.geyser.api.item.custom.v2.CustomItemDefinition;
import org.geysermc.geyser.api.item.custom.v2.predicate.ConditionProperty;
import org.geysermc.geyser.api.item.custom.v2.predicate.CustomItemPredicate;
import org.geysermc.geyser.api.item.custom.v2.predicate.PredicateStrategy;
import org.geysermc.geyser.api.item.custom.v2.predicate.RangeDispatchProperty;
import org.geysermc.geyser.api.item.custom.v2.predicate.match.CustomModelDataString;
import org.geysermc.geyser.api.item.custom.v2.predicate.match.ChargeType;
Expand Down Expand Up @@ -144,6 +145,7 @@ public CustomItemDefinition readItemMappingEntry(Identifier parentModel, JsonNod
MappingsUtil.readIfPresent(node, "priority", builder::priority, NodeReader.INT, context);

readPredicates(builder, node.get("predicate"), context);
MappingsUtil.readIfPresent(node, "predicate_strategy", builder::predicateStrategy, NodeReader.PREDICATE_STRATEGY, context);

builder.bedrockOptions(readBedrockOptions(node.get("bedrock_options"), context));

Expand Down

0 comments on commit f4c9c3d

Please sign in to comment.