No need to return a new meta

Signed-off-by: TheMode <themode@outlook.fr>
This commit is contained in:
TheMode 2022-04-21 18:43:42 +02:00
parent 3c0abb0409
commit 3f98bde82e
2 changed files with 16 additions and 15 deletions

View File

@ -88,15 +88,15 @@ public sealed interface ItemStack extends TagReadable, HoverEventSource<HoverEve
<T extends ItemMetaView<?>> @NotNull T meta(@NotNull Class<T> metaClass);
@Contract(value = "_, -> new", pure = true)
@NotNull ItemStack with(@NotNull Consumer<@NotNull Builder> builderConsumer);
@NotNull ItemStack with(@NotNull Consumer<@NotNull Builder> consumer);
@Contract(value = "_, _ -> new", pure = true)
@ApiStatus.Experimental
<V extends ItemMetaView.Builder, T extends ItemMetaView<V>> @NotNull ItemStack withMeta(@NotNull Class<T> metaType,
@NotNull Consumer<V> metaConsumer);
@NotNull Consumer<V> consumer);
@Contract(value = "_ -> new", pure = true)
@NotNull ItemStack withMeta(@NotNull UnaryOperator<ItemMeta.@NotNull Builder> metaOperator);
@NotNull ItemStack withMeta(@NotNull Consumer<ItemMeta.@NotNull Builder> consumer);
@Contract(value = "_, -> new", pure = true)
default @NotNull ItemStack withMaterial(@NotNull Material material) {
@ -204,7 +204,8 @@ public sealed interface ItemStack extends TagReadable, HoverEventSource<HoverEve
return meta();
}
sealed interface Builder extends Taggable permits ItemStackImpl.Builder {
sealed interface Builder extends Taggable
permits ItemStackImpl.Builder {
@Contract(value = "_ -> this")
@NotNull Builder amount(int amount);
@ -218,10 +219,11 @@ public sealed interface ItemStack extends TagReadable, HoverEventSource<HoverEve
@NotNull Builder meta(@NotNull ItemMeta itemMeta);
@Contract(value = "_ -> this")
@NotNull Builder meta(@NotNull UnaryOperator<ItemMeta.@NotNull Builder> consumer);
@NotNull Builder meta(@NotNull Consumer<ItemMeta.@NotNull Builder> consumer);
@Contract(value = "_, _ -> this")
<V extends ItemMetaView.Builder, T extends ItemMetaView<V>> @NotNull Builder meta(@NotNull Class<T> metaType, @NotNull Consumer<@NotNull V> itemMetaConsumer);
<V extends ItemMetaView.Builder, T extends ItemMetaView<V>> @NotNull Builder meta(@NotNull Class<T> metaType,
@NotNull Consumer<@NotNull V> itemMetaConsumer);
@Contract(value = "-> new", pure = true)
@NotNull ItemStack build();

View File

@ -11,7 +11,6 @@ import org.jglrxavpok.hephaistos.nbt.NBTString;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.UnaryOperator;
record ItemStackImpl(Material material, int amount, ItemMetaImpl meta) implements ItemStack {
static final @NotNull StackingRule DEFAULT_STACKING_RULE;
@ -45,21 +44,21 @@ record ItemStackImpl(Material material, int amount, ItemMetaImpl meta) implement
}
@Override
public @NotNull ItemStack with(@NotNull Consumer<ItemStack.@NotNull Builder> builderConsumer) {
public @NotNull ItemStack with(@NotNull Consumer<ItemStack.@NotNull Builder> consumer) {
ItemStack.Builder builder = builder();
builderConsumer.accept(builder);
consumer.accept(builder);
return builder.build();
}
@Override
public @NotNull <V extends ItemMetaView.Builder, T extends ItemMetaView<V>> ItemStack withMeta(@NotNull Class<T> metaType,
@NotNull Consumer<V> metaConsumer) {
return builder().meta(metaType, metaConsumer).build();
@NotNull Consumer<V> consumer) {
return builder().meta(metaType, consumer).build();
}
@Override
public @NotNull ItemStack withMeta(@NotNull UnaryOperator<ItemMeta.@NotNull Builder> metaOperator) {
return builder().meta(metaOperator).build();
public @NotNull ItemStack withMeta(@NotNull Consumer<ItemMeta.@NotNull Builder> consumer) {
return builder().meta(consumer).build();
}
@Override
@ -124,8 +123,8 @@ record ItemStackImpl(Material material, int amount, ItemMetaImpl meta) implement
}
@Override
public ItemStack.@NotNull Builder meta(@NotNull UnaryOperator<ItemMeta.Builder> consumer) {
this.metaBuilder = (ItemMetaImpl.Builder) consumer.apply(metaBuilder);
public ItemStack.@NotNull Builder meta(@NotNull Consumer<ItemMeta.Builder> consumer) {
consumer.accept(metaBuilder);
return this;
}