BeesPlus/src/main/java/com/tomff/beesplus/core/items/ItemBuilder.java

68 lines
1.6 KiB
Java

package com.tomff.beesplus.core.items;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataType;
import java.util.Arrays;
public class ItemBuilder {
private ItemStack item;
public ItemBuilder(Material material) {
this.item = new ItemStack(material, 1);
}
public ItemBuilder setName(String name) {
ItemMeta meta = item.getItemMeta();
if (meta != null) {
meta.setDisplayName(name);
item.setItemMeta(meta);
}
return this;
}
public ItemBuilder setLore(String... lore) {
ItemMeta meta = item.getItemMeta();
meta.setLore(Arrays.asList(lore));
item.setItemMeta(meta);
return this;
}
public ItemBuilder enchant(Enchantment enchantment, int level) {
item.addUnsafeEnchantment(enchantment, level);
return this;
}
public ItemBuilder hideEnchantments() {
ItemMeta meta = item.getItemMeta();
meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
item.setItemMeta(meta);
return this;
}
public <T, Z> ItemBuilder setPersistentData(NamespacedKey key, PersistentDataType<T, Z> type, Z value) {
ItemMeta meta = item.getItemMeta();
meta.getPersistentDataContainer().set(key, type, value);
item.setItemMeta(meta);
return this;
}
public ItemStack build() {
return item;
}
}