From 3ba74639bfe5d97fae6f472d73fcd26b4d6beb27 Mon Sep 17 00:00:00 2001 From: themode Date: Thu, 1 Apr 2021 22:28:32 +0200 Subject: [PATCH] Added Item#getUuid --- src/main/java/net/minestom/server/item/Item.java | 12 ++++++++++++ src/main/java/net/minestom/server/item/ItemMeta.java | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/net/minestom/server/item/Item.java b/src/main/java/net/minestom/server/item/Item.java index 0ee9f427d..2123dbe76 100644 --- a/src/main/java/net/minestom/server/item/Item.java +++ b/src/main/java/net/minestom/server/item/Item.java @@ -6,12 +6,14 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; +import java.util.UUID; import java.util.function.Consumer; import java.util.function.IntUnaryOperator; import java.util.function.UnaryOperator; public class Item { + private final UUID uuid = UUID.randomUUID(); private final Material material; private final int amount; private final ItemMeta meta; @@ -27,6 +29,16 @@ public class Item { return new ItemBuilder(material); } + @Contract(pure = true) + public @NotNull UUID getUuid() { + return uuid; + } + + @Contract(pure = true) + public @NotNull Material getMaterial() { + return material; + } + @Contract(value = "_, -> new", pure = true) public @NotNull Item with(@NotNull Consumer<@NotNull ItemBuilder> builderConsumer) { var builder = builder(); diff --git a/src/main/java/net/minestom/server/item/ItemMeta.java b/src/main/java/net/minestom/server/item/ItemMeta.java index 5a14f12fb..9bfff624f 100644 --- a/src/main/java/net/minestom/server/item/ItemMeta.java +++ b/src/main/java/net/minestom/server/item/ItemMeta.java @@ -6,6 +6,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; +import java.util.function.Consumer; public class ItemMeta implements Cloneable { @@ -19,6 +20,13 @@ public class ItemMeta implements Cloneable { this.lore = metaBuilder.lore; } + @Contract(value = "_, -> new", pure = true) + public @NotNull ItemMeta with(@NotNull Consumer<@NotNull ItemMetaBuilder> builderConsumer) { + var builder = builder(); + builderConsumer.accept(builder); + return builder.build(); + } + @Contract(pure = true) public @Nullable Component getDisplayName() { return displayName;