Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. import org.bukkit.Material;
  2. import org.bukkit.enchantments.Enchantment;
  3. import org.bukkit.inventory.ItemFlag;
  4. import org.bukkit.inventory.ItemStack;
  5. import org.bukkit.inventory.meta.ItemMeta;
  6. import org.bukkit.material.MaterialData;
  7.  
  8. import java.util.Arrays;
  9. import java.util.List;
  10. import java.util.Map;
  11.  
  12. public class ItemBuilder {
  13.  
  14.     private ItemMeta meta;
  15.     private ItemStack itemStack;
  16.  
  17.     public ItemBuilder(ItemStack itemStack) {
  18.         this.itemStack = itemStack;
  19.         this.meta = itemStack.getItemMeta();
  20.     }
  21.  
  22.     public ItemBuilder(Material material) {
  23.         this(new ItemStack(material));
  24.     }
  25.  
  26.     public ItemBuilder type(Material material) {
  27.         this.itemStack.setType(material);
  28.         return this;
  29.     }
  30.  
  31.     public ItemBuilder name(String name) {
  32.         meta.setDisplayName(name);
  33.         return this;
  34.     }
  35.  
  36.     public ItemBuilder itemMeta(ItemMeta meta) {
  37.         this.meta = meta;
  38.         return this;
  39.     }
  40.  
  41.     public ItemBuilder durability(short dura) {
  42.         this.itemStack.setDurability(dura);
  43.         return this;
  44.     }
  45.  
  46.     public ItemBuilder data(MaterialData data) {
  47.         this.itemStack.setData(data);
  48.         return this;
  49.     }
  50.  
  51.     public ItemBuilder lore(String... lore) {
  52.         lore(Arrays.asList(lore));
  53.         return this;
  54.     }
  55.  
  56.     public ItemBuilder lore(List<String> lore) {
  57.         this.meta.setLore(lore);
  58.         return this;
  59.     }
  60.  
  61.     public ItemBuilder enchantments(Map<Enchantment, Integer> enchantments, boolean safe) {
  62.         if (safe) itemStack.addEnchantments(enchantments);
  63.         else itemStack.addUnsafeEnchantments(enchantments);
  64.         return this;
  65.     }
  66.  
  67.     public ItemBuilder enchantment(Enchantment enchantment, int level, boolean safe) {
  68.         if (safe) itemStack.addEnchantment(enchantment, level);
  69.         else itemStack.addUnsafeEnchantment(enchantment, level);
  70.         return this;
  71.     }
  72.  
  73.     public ItemBuilder addItemFlags(ItemFlag... flags) {
  74.         this.meta.addItemFlags(flags);
  75.         return this;
  76.     }
  77.  
  78.     public ItemBuilder amount(int amount) {
  79.         this.itemStack.setAmount(amount);
  80.         return this;
  81.     }
  82.  
  83.     public ItemStack build() {
  84.         itemStack.setItemMeta(meta);
  85.         return itemStack;
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement