From 9128ae9a51a0583931544d59b4a7aa2e976d00a8 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Fri, 12 Sep 2025 20:37:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dcondition=20component?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../condition/ComponentConditionProperty.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/ComponentConditionProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/ComponentConditionProperty.java index 379ffab71..b0907744e 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/ComponentConditionProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/condition/ComponentConditionProperty.java @@ -1,6 +1,8 @@ package net.momirealms.craftengine.core.pack.model.condition; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import net.momirealms.craftengine.core.util.GsonHelper; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; @@ -10,9 +12,9 @@ public class ComponentConditionProperty implements ConditionProperty { public static final Factory FACTORY = new Factory(); public static final Reader READER = new Reader(); private final String predicate; - private final String value; + private final JsonElement value; - public ComponentConditionProperty(String predicate, String value) { + public ComponentConditionProperty(String predicate, JsonElement value) { this.predicate = predicate; this.value = value; } @@ -26,15 +28,15 @@ public class ComponentConditionProperty implements ConditionProperty { public void accept(JsonObject jsonObject) { jsonObject.addProperty("property", type().toString()); jsonObject.addProperty("predicate", this.predicate); - jsonObject.addProperty("value", this.value); + jsonObject.add("value", this.value); } public static class Factory implements ConditionPropertyFactory { @Override public ConditionProperty create(Map arguments) { String predicate = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("predicate"), "warning.config.item.model.condition.component.missing_predicate"); - String value = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("value"), "warning.config.item.model.condition.component.missing_value"); - return new ComponentConditionProperty(predicate, value); + JsonElement jsonElement = GsonHelper.get().toJsonTree(ResourceConfigUtils.requireNonNullOrThrow(arguments.get("value"), "warning.config.item.model.condition.component.missing_value")); + return new ComponentConditionProperty(predicate, jsonElement); } } @@ -42,7 +44,7 @@ public class ComponentConditionProperty implements ConditionProperty { @Override public ConditionProperty read(JsonObject json) { String predicate = json.get("predicate").getAsString(); - String value = json.get("value").getAsString(); + JsonElement value = json.get("value"); return new ComponentConditionProperty(predicate, value); } }