From 939807b1b39d052ef12f66acb1eaf5c5df01fe1a Mon Sep 17 00:00:00 2001 From: XiaoMoMi <972454774@qq.com> Date: Wed, 15 Oct 2025 02:29:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0copper=5Fgolem=5Fstatue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/recipe/RecipeEventListener.java | 1 + .../src/main/resources/translations/en.yml | 2 + .../CopperGolemStatueSpecialModel.java | 59 +++++++++++++++++++ .../pack/model/special/SpecialModels.java | 3 + 4 files changed, 65 insertions(+) create mode 100644 core/src/main/java/net/momirealms/craftengine/core/pack/model/special/CopperGolemStatueSpecialModel.java diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java index 58392558e..2b32f57eb 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/recipe/RecipeEventListener.java @@ -628,6 +628,7 @@ public class RecipeEventListener implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) public void onCraftingFinish(CraftItemEvent event) { + System.out.println(event.isShiftClick()); if (!Config.enableRecipeSystem() || !VersionHelper.PREMIUM) return; org.bukkit.inventory.Recipe recipe = event.getRecipe(); if (!(recipe instanceof CraftingRecipe craftingRecipe)) return; diff --git a/common-files/src/main/resources/translations/en.yml b/common-files/src/main/resources/translations/en.yml index e7a1325d6..b5dc47ccc 100644 --- a/common-files/src/main/resources/translations/en.yml +++ b/common-files/src/main/resources/translations/en.yml @@ -258,6 +258,8 @@ warning.config.item.model.special.chest.invalid_openness: "Issue found i warning.config.item.model.special.shulker_box.missing_texture: "Issue found in file - The item '' is missing the required 'texture' argument for special model 'minecraft:shulker_box'." warning.config.item.model.special.shulker_box.invalid_openness: "Issue found in file - The item '' is using an invalid 'openness' value '' for special model 'minecraft:shulker_box'. Valid range '0~1.'" warning.config.item.model.special.head.missing_kind: "Issue found in file - The item '' is missing the required 'kind' argument for special model 'minecraft:head'." +warning.config.item.model.special.copper_golem_statue.missing_pose: "Issue found in file - The item '' is missing the required 'pose' argument for special model 'minecraft:copper_golem_statue'." +warning.config.item.model.special.copper_golem_statue.missing_texture: "Issue found in file - The item '' is missing the required 'texture' argument for special model 'minecraft:copper_golem_statue'." warning.config.item.updater.missing_type: "Issue found in file - The item '' is missing the required 'type' argument for item updater." warning.config.item.updater.invalid_type: "Issue found in file - The item '' is using an invalid 'type' argument '' for item updater." warning.config.item.updater.transmute.missing_material: "Issue found in file - The item '' is missing the required 'material' argument for 'transmute' item updater." diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/CopperGolemStatueSpecialModel.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/CopperGolemStatueSpecialModel.java new file mode 100644 index 000000000..132461a83 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/CopperGolemStatueSpecialModel.java @@ -0,0 +1,59 @@ +package net.momirealms.craftengine.core.pack.model.special; + +import com.google.gson.JsonObject; +import net.momirealms.craftengine.core.pack.revision.Revision; +import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.util.MinecraftVersion; +import net.momirealms.craftengine.core.util.ResourceConfigUtils; + +import java.util.List; +import java.util.Map; + +public class CopperGolemStatueSpecialModel implements SpecialModel { + public static final Factory FACTORY = new Factory(); + public static final Reader READER = new Reader(); + private final String pose; + private final String texture; + + public CopperGolemStatueSpecialModel(String pose, String texture) { + this.pose = pose; + this.texture = texture; + } + + @Override + public Key type() { + return SpecialModels.COPPER_GOLEM_STATUE; + } + + @Override + public List revisions() { + return List.of(); + } + + @Override + public JsonObject apply(MinecraftVersion version) { + JsonObject json = new JsonObject(); + json.addProperty("type", type().toString()); + json.addProperty("pose", this.pose); + json.addProperty("texture", this.texture); + return json; + } + + public static class Factory implements SpecialModelFactory { + @Override + public SpecialModel create(Map arguments) { + String pose = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("pose"), "warning.config.item.model.special.copper_golem_statue.missing_pose"); + String texture = ResourceConfigUtils.requireNonEmptyStringOrThrow(arguments.get("texture"), "warning.config.item.model.special.copper_golem_statue.missing_texture"); + return new CopperGolemStatueSpecialModel(pose, texture); + } + } + + public static class Reader implements SpecialModelReader { + @Override + public SpecialModel read(JsonObject json) { + String pose = json.get("pose").getAsString(); + String texture = json.get("texture").getAsString(); + return new CopperGolemStatueSpecialModel(pose, texture); + } + } +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SpecialModels.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SpecialModels.java index 73f91a271..c27c4bba3 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SpecialModels.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/special/SpecialModels.java @@ -24,6 +24,7 @@ public class SpecialModels { public static final Key STANDING_SIGN = Key.of("minecraft:standing_sign"); public static final Key TRIDENT = Key.of("minecraft:trident"); public static final Key PLAYER_HEAD = Key.of("minecraft:player_head"); + public static final Key COPPER_GOLEM_STATUE = Key.of("minecraft:copper_golem_statue"); static { registerFactory(TRIDENT, SimpleSpecialModel.FACTORY); @@ -50,6 +51,8 @@ public class SpecialModels { registerReader(HEAD, HeadSpecialModel.READER); registerFactory(SHULKER_BOX, ShulkerBoxSpecialModel.FACTORY); registerReader(SHULKER_BOX, ShulkerBoxSpecialModel.READER); + registerFactory(COPPER_GOLEM_STATUE, CopperGolemStatueSpecialModel.FACTORY); + registerReader(COPPER_GOLEM_STATUE, CopperGolemStatueSpecialModel.READER); } public static void registerFactory(Key key, SpecialModelFactory factory) {