diff --git a/src/main/java/net/minestom/server/item/ItemMeta.java b/src/main/java/net/minestom/server/item/ItemMeta.java index a17f843c7..06c64bf71 100644 --- a/src/main/java/net/minestom/server/item/ItemMeta.java +++ b/src/main/java/net/minestom/server/item/ItemMeta.java @@ -84,13 +84,27 @@ public class ItemMeta implements Cloneable { return customModelData; } - public NBTCompound toNBT() { + public @NotNull NBTCompound toNBT() { if (cache == null) { this.cache = NBTUtils.metaToNBT(this); } return cache; } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + ItemMeta itemMeta = (ItemMeta) o; + return toNBT().equals(itemMeta.toNBT()); + } + + @Override + public int hashCode() { + return toNBT().hashCode(); + } + protected @NotNull ItemMetaBuilder builder() { return builder.clone(); } diff --git a/src/main/java/net/minestom/server/item/ItemStack.java b/src/main/java/net/minestom/server/item/ItemStack.java index 514e99df8..ee8cfa692 100644 --- a/src/main/java/net/minestom/server/item/ItemStack.java +++ b/src/main/java/net/minestom/server/item/ItemStack.java @@ -14,7 +14,7 @@ import java.util.function.UnaryOperator; public class ItemStack { - public static final ItemStack AIR = ItemStack.builder(Material.AIR).build(); + public static final ItemStack AIR = ItemStack.of(Material.AIR); private final UUID uuid = UUID.randomUUID(); private final StackingRule stackingRule = new VanillaStackingRule(64); @@ -34,7 +34,7 @@ public class ItemStack { return new ItemBuilder(material); } - @Contract(value = "_ -> new", pure = true) + @Contract(value = "_ ,_ -> new", pure = true) public static @NotNull ItemStack of(@NotNull Material material, int amount) { return builder(material).amount(amount).build(); } diff --git a/src/main/java/net/minestom/server/network/packet/server/play/ChunkDataPacket.java b/src/main/java/net/minestom/server/network/packet/server/play/ChunkDataPacket.java index 18d1f6fb6..8a5a206fa 100644 --- a/src/main/java/net/minestom/server/network/packet/server/play/ChunkDataPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/play/ChunkDataPacket.java @@ -24,7 +24,6 @@ import net.minestom.server.utils.chunk.ChunkUtils; import net.minestom.server.world.biomes.Biome; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jglrxavpok.hephaistos.nbt.NBT; import org.jglrxavpok.hephaistos.nbt.NBTCompound; import org.jglrxavpok.hephaistos.nbt.NBTException; diff --git a/src/main/java/net/minestom/server/utils/NBTUtils.java b/src/main/java/net/minestom/server/utils/NBTUtils.java index 9a23afb68..9a7633947 100644 --- a/src/main/java/net/minestom/server/utils/NBTUtils.java +++ b/src/main/java/net/minestom/server/utils/NBTUtils.java @@ -6,15 +6,11 @@ import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.kyori.adventure.util.Codec; import net.minestom.server.MinecraftServer; import net.minestom.server.adventure.AdventureSerializer; -import net.minestom.server.attribute.Attribute; -import net.minestom.server.attribute.AttributeOperation; -import net.minestom.server.data.Data; import net.minestom.server.inventory.Inventory; import net.minestom.server.item.Enchantment; import net.minestom.server.item.ItemMeta; import net.minestom.server.item.ItemStack; import net.minestom.server.item.Material; -import net.minestom.server.item.attribute.AttributeSlot; import net.minestom.server.item.attribute.ItemAttribute; import net.minestom.server.registry.Registries; import net.minestom.server.utils.binary.BinaryReader; @@ -28,8 +24,6 @@ import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.StringReader; -import java.util.ArrayList; -import java.util.List; import java.util.Map; import java.util.UUID; @@ -286,7 +280,7 @@ public final class NBTUtils { } } - public static NBTCompound metaToNBT(@NotNull ItemMeta itemMeta) { + public static @NotNull NBTCompound metaToNBT(@NotNull ItemMeta itemMeta) { final NBTCompound itemNBT = new NBTCompound(); // Unbreakable @@ -302,7 +296,7 @@ public final class NBTUtils { } } - // Display + // Start display { final var displayName = itemMeta.getDisplayName(); final var lore = itemMeta.getLore(); @@ -326,14 +320,16 @@ public final class NBTUtils { itemNBT.set("display", displayNBT); } } + // End display - // Enchantment + // Start enchantment { final var enchantmentMap = itemMeta.getEnchantmentMap(); if (!enchantmentMap.isEmpty()) { NBTUtils.writeEnchant(itemNBT, "Enchantments", enchantmentMap); } } + // End enchantment // Start attribute { @@ -358,14 +354,14 @@ public final class NBTUtils { } // End attribute - // Start hide flags + // Start hide flag { final int hideFlag = itemMeta.getHideFlag(); if (hideFlag != 0) { itemNBT.setInt("HideFlags", hideFlag); } } - // End hide flags + // End hide flag // Start custom model data {