diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/factory/ComponentItemFactory1_21_2.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/factory/ComponentItemFactory1_21_2.java index b5e17b8fd..254aeff5e 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/factory/ComponentItemFactory1_21_2.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/factory/ComponentItemFactory1_21_2.java @@ -46,7 +46,7 @@ public class ComponentItemFactory1_21_2 extends ComponentItemFactory1_21 { if (data == null) { item.resetComponent(ComponentTypes.EQUIPPABLE); } else { - item.setJavaComponent(ComponentTypes.EQUIPPABLE, data.toMap()); + item.setSparrowNBTComponent(ComponentTypes.EQUIPPABLE, data.toNBT()); } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/Item.java b/core/src/main/java/net/momirealms/craftengine/core/item/Item.java index 8b2954c31..84dcffa88 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/Item.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/Item.java @@ -112,7 +112,6 @@ public interface Item { Item equippable(EquipmentData equipmentData); - Item unbreakable(boolean unbreakable); boolean unbreakable(); 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 a4f615ef1..4d7efc707 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 @@ -5,10 +5,12 @@ import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigExce import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.VersionHelper; +import net.momirealms.sparrow.nbt.CompoundTag; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Locale; import java.util.Map; @@ -97,22 +99,26 @@ public class EquipmentData { return cameraOverlay; } - public Map toMap() { - Map map = new HashMap<>(); - map.put("slot", this.slot.toString().toLowerCase(Locale.ENGLISH)); + public CompoundTag toNBT() { + CompoundTag tag = new CompoundTag(); + tag.putString("slot", this.slot.toString().toLowerCase(Locale.ENGLISH)); if (this.assetId != null) { - map.put("asset_id", this.assetId.toString()); + if (VersionHelper.isOrAbove1_21_4()) { + tag.putString("asset_id", this.assetId.toString()); + } else { + tag.putString("model", this.assetId.toString()); + } } - map.put("dispensable", this.dispensable); - map.put("swappable", this.swappable); - map.put("damage_on_hurt", this.damageOnHurt); + tag.putBoolean("dispensable", this.dispensable); + tag.putBoolean("swappable", this.swappable); + tag.putBoolean("damage_on_hurt", this.damageOnHurt); if (VersionHelper.isOrAbove1_21_5()) { - map.put("equip_on_interact", this.equipOnInteract); + tag.putBoolean("equip_on_interact", this.equipOnInteract); } if (this.cameraOverlay != null) { - map.put("camera_overlay", this.cameraOverlay.toString()); + tag.putString("camera_overlay", this.cameraOverlay.toString()); } - return map; + return tag; } public static Builder builder() {