mirror of
https://github.com/Minestom/Minestom.git
synced 2025-02-22 15:22:56 +01:00
Added setter for StackingRule
This commit is contained in:
parent
fed4e6897a
commit
70b97951e4
@ -11,6 +11,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jglrxavpok.hephaistos.nbt.NBTCompound;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.IntUnaryOperator;
|
||||
import java.util.function.UnaryOperator;
|
||||
@ -28,17 +29,20 @@ public final class ItemStack implements HoverEventSource<HoverEvent.ShowItem> {
|
||||
*/
|
||||
public static final @NotNull ItemStack AIR = ItemStack.of(Material.AIR);
|
||||
|
||||
private final StackingRule stackingRule = new VanillaStackingRule(64);
|
||||
private final StackingRule stackingRule;
|
||||
|
||||
private final Material material;
|
||||
private final int amount;
|
||||
private final ItemMeta meta;
|
||||
|
||||
protected ItemStack(@NotNull Material material, int amount,
|
||||
@NotNull ItemMeta meta) {
|
||||
@NotNull ItemMeta meta,
|
||||
@NotNull StackingRule stackingRule) {
|
||||
this.material = material;
|
||||
this.amount = amount;
|
||||
this.meta = meta;
|
||||
this.stackingRule = Objects.requireNonNullElseGet(stackingRule,
|
||||
() -> new VanillaStackingRule(64));
|
||||
}
|
||||
|
||||
@Contract(value = "_ -> new", pure = true)
|
||||
|
@ -20,6 +20,8 @@ public class ItemStackBuilder {
|
||||
private int amount;
|
||||
protected ItemMetaBuilder metaBuilder;
|
||||
|
||||
private StackingRule stackingRule;
|
||||
|
||||
protected ItemStackBuilder(@NotNull Material material, @NotNull ItemMetaBuilder metaBuilder) {
|
||||
this.material = material;
|
||||
this.amount = 1;
|
||||
@ -97,12 +99,18 @@ public class ItemStackBuilder {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Contract(value = "_ -> this")
|
||||
public @NotNull ItemStackBuilder stackingRule(@Nullable StackingRule stackingRule) {
|
||||
this.stackingRule = stackingRule;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Contract(value = "-> new", pure = true)
|
||||
public @NotNull ItemStack build() {
|
||||
if (amount <= 0)
|
||||
return ItemStack.AIR;
|
||||
|
||||
return new ItemStack(material, amount, metaBuilder.build());
|
||||
return new ItemStack(material, amount, metaBuilder.build(), stackingRule);
|
||||
}
|
||||
|
||||
private static final class DefaultMeta extends ItemMetaBuilder {
|
||||
|
Loading…
Reference in New Issue
Block a user