From 484fcc3201e65ed5bba4d41b42da3858ebc2ac36 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Fri, 4 Jul 2025 06:25:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=AB=98=E7=89=88=E6=9C=ACtr?= =?UTF-8?q?im=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../craftengine/core/item/ItemSettings.java | 12 ++++++++++-- .../craftengine/core/item/setting/EquipmentData.java | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java b/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java index e9199502e..89ae2db4b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/ItemSettings.java @@ -333,8 +333,16 @@ public class ItemSettings { throw new LocalizedResourceConfigException("warning.config.item.settings.equipment.invalid_asset_id"); } if (VersionHelper.isOrAbove1_21_2() && args.containsKey("slot")) { - EquipmentData data = EquipmentData.fromMap(args); - return settings -> settings.equipment(new ItemEquipment(clientBoundModel, data, optionalEquipment.get())); + if (optionalEquipment.get() instanceof ComponentBasedEquipment) { + EquipmentData data = EquipmentData.fromMap(args); + return settings -> settings.equipment(new ItemEquipment(clientBoundModel, data, optionalEquipment.get())); + } else { + // trim based + Map copiedArgs = new HashMap<>(args); + copiedArgs.put("asset-id", Config.sacrificedVanillaArmorType()); + EquipmentData data = EquipmentData.fromMap(copiedArgs); + return settings -> settings.equipment(new ItemEquipment(clientBoundModel, data, optionalEquipment.get())); + } } else { return settings -> settings.equipment(new ItemEquipment(clientBoundModel, null, optionalEquipment.get())); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/setting/EquipmentData.java b/core/src/main/java/net/momirealms/craftengine/core/item/setting/EquipmentData.java index 4d9b15e11..9f49c0b19 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/setting/EquipmentData.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/setting/EquipmentData.java @@ -130,7 +130,7 @@ public class EquipmentData { private boolean swappable = true; private boolean damageOnHurt = true; // 1.21.5+ - private boolean equipOnInteract = true; + private boolean equipOnInteract = false; private Key cameraOverlay; public Builder() {}