From a70870d261006fcb15e8371c105f7421f419833a Mon Sep 17 00:00:00 2001 From: themode Date: Fri, 2 Apr 2021 15:42:58 +0200 Subject: [PATCH] Added ItemMetaBuilder.Provider --- src/main/java/net/minestom/server/item/Item.java | 2 +- src/main/java/net/minestom/server/item/ItemBuilder.java | 2 +- src/main/java/net/minestom/server/item/ItemMetaBuilder.java | 3 +++ src/main/java/net/minestom/server/item/meta/CompassMeta.java | 2 +- src/test/java/demo/PlayerInit.java | 4 ++-- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minestom/server/item/Item.java b/src/main/java/net/minestom/server/item/Item.java index 2123dbe76..065481bfa 100644 --- a/src/main/java/net/minestom/server/item/Item.java +++ b/src/main/java/net/minestom/server/item/Item.java @@ -62,7 +62,7 @@ public class Item { } @Contract(value = "_, _ -> new", pure = true) - public @NotNull Item withMeta(Class metaType, Consumer metaConsumer) { + public > @NotNull Item withMeta(Class metaType, Consumer metaConsumer) { return builder().meta(metaType, metaConsumer).build(); } diff --git a/src/main/java/net/minestom/server/item/ItemBuilder.java b/src/main/java/net/minestom/server/item/ItemBuilder.java index 6ab8e1d46..33f38fa8a 100644 --- a/src/main/java/net/minestom/server/item/ItemBuilder.java +++ b/src/main/java/net/minestom/server/item/ItemBuilder.java @@ -39,7 +39,7 @@ public class ItemBuilder { } @Contract(value = "_, _ -> this") - public @NotNull ItemBuilder meta(Class metaType, Consumer itemMetaConsumer) { + public > @NotNull ItemBuilder meta(Class metaType, Consumer itemMetaConsumer) { itemMetaConsumer.accept((T) metaBuilder); return this; } diff --git a/src/main/java/net/minestom/server/item/ItemMetaBuilder.java b/src/main/java/net/minestom/server/item/ItemMetaBuilder.java index 9c23cdf4a..301665141 100644 --- a/src/main/java/net/minestom/server/item/ItemMetaBuilder.java +++ b/src/main/java/net/minestom/server/item/ItemMetaBuilder.java @@ -64,4 +64,7 @@ public abstract class ItemMetaBuilder implements Cloneable { } } + public interface Provider { + } + } diff --git a/src/main/java/net/minestom/server/item/meta/CompassMeta.java b/src/main/java/net/minestom/server/item/meta/CompassMeta.java index 92c98a2fd..4651f79d5 100644 --- a/src/main/java/net/minestom/server/item/meta/CompassMeta.java +++ b/src/main/java/net/minestom/server/item/meta/CompassMeta.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; -public class CompassMeta extends ItemMeta { +public class CompassMeta extends ItemMeta implements ItemMetaBuilder.Provider { private final boolean lodestoneTracked; private final String lodestoneDimension; diff --git a/src/test/java/demo/PlayerInit.java b/src/test/java/demo/PlayerInit.java index 8df5d5cca..974fe977e 100644 --- a/src/test/java/demo/PlayerInit.java +++ b/src/test/java/demo/PlayerInit.java @@ -76,7 +76,7 @@ public class PlayerInit { Item item = Item.builder(Material.COMPASS) .amount(5) .meta(compassMeta) - .meta(CompassMeta.Builder.class, builder -> { + .meta(CompassMeta.class, builder -> { builder.lodestonePosition(new Position(0, 0, 0)); }) .displayName(Component.text("displayName")) @@ -84,7 +84,7 @@ public class PlayerInit { item = item.with(itemBuilder -> itemBuilder .amount(10) - .meta(CompassMeta.Builder.class, builder -> { + .meta(CompassMeta.class, builder -> { builder.lodestonePosition(new Position(5, 0, 0)); }) .lore(Component.text("Lore")));