Advertisement
Rukes

Untitled

May 29th, 2018
129
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package dev.stylecraft.essentials.utils.builder;
  2.  
  3. import org.bukkit.Material;
  4. import org.bukkit.enchantments.Enchantment;
  5. import org.bukkit.inventory.ItemFlag;
  6. import org.bukkit.inventory.ItemStack;
  7. import org.bukkit.inventory.meta.ItemMeta;
  8.  
  9. import java.util.ArrayList;
  10. import java.util.Arrays;
  11. import java.util.List;
  12.  
  13. public class ItemBuilder {
  14.  
  15.     private ItemStack itemStack;
  16.  
  17.     public ItemBuilder(ItemStack itemStack){
  18.         this.itemStack = itemStack;
  19.     }
  20.  
  21.     public ItemBuilder(Material material){
  22.         this.itemStack = new ItemStack(material);
  23.     }
  24.  
  25.     public ItemBuilder(Material material, byte data){
  26.         this.itemStack = new ItemStack(material, data);
  27.     }
  28.  
  29.     public ItemBuilder(Material material, int amount){
  30.         this.itemStack = new ItemStack(material, (byte) 0);
  31.     }
  32.  
  33.     public ItemBuilder(Material material, int amount, byte data){
  34.         this.itemStack = new ItemStack(material, amount, data);
  35.     }
  36.  
  37.     public ItemBuilder setItemStack(ItemStack itemStack){
  38.         this.itemStack = itemStack;
  39.         return this;
  40.     }
  41.  
  42.     public ItemBuilder setData(byte data){
  43.         itemStack.setDurability(data);
  44.         return this;
  45.     }
  46.  
  47.     public ItemBuilder setAmount(int amount){
  48.         itemStack.setAmount(amount);
  49.         return this;
  50.     }
  51.  
  52.     public ItemBuilder setDisplayName(String displayName){
  53.         ItemMeta itemMeta = itemStack.getItemMeta();
  54.         itemMeta.setDisplayName(displayName);
  55.         itemStack.setItemMeta(itemMeta);
  56.         return this;
  57.     }
  58.  
  59.     public ItemBuilder setLore(List<String> lore){
  60.         ItemMeta itemMeta = itemStack.getItemMeta();
  61.         itemMeta.setLore(lore);
  62.         itemStack.setItemMeta(itemMeta);
  63.         return this;
  64.     }
  65.  
  66.     public ItemBuilder setLore(String... lore){
  67.         ItemMeta itemMeta = itemStack.getItemMeta();
  68.         itemMeta.setLore(Arrays.asList(lore));
  69.         itemStack.setItemMeta(itemMeta);
  70.         return this;
  71.     }
  72.  
  73.     public ItemBuilder addLoreLine(String line){
  74.         ItemMeta itemMeta = itemStack.getItemMeta();
  75.         List<String> lore = itemMeta.hasLore() ? itemMeta.getLore() : new ArrayList<>();
  76.         lore.add(line);
  77.         itemMeta.setLore(lore);
  78.         itemStack.setItemMeta(itemMeta);
  79.         return this;
  80.     }
  81.  
  82.     public ItemBuilder addLoreLine(String... line){
  83.         ItemMeta itemMeta = itemStack.getItemMeta();
  84.         List<String> lore = itemMeta.hasLore() ? itemMeta.getLore() : new ArrayList<>();
  85.         lore.addAll(Arrays.asList(line));
  86.         itemMeta.setLore(lore);
  87.         itemStack.setItemMeta(itemMeta);
  88.         return this;
  89.     }
  90.  
  91.     public ItemBuilder addEnchantment(Enchantment enchantment, int level){
  92.         itemStack.addUnsafeEnchantment(enchantment, level);
  93.         return this;
  94.     }
  95.  
  96.     public ItemBuilder removeEnchantment(Enchantment enchantment){
  97.         itemStack.removeEnchantment(enchantment);
  98.         return this;
  99.     }
  100.  
  101.     public ItemBuilder setUnbreakable(boolean unbreakable){
  102.         ItemMeta itemMeta = itemStack.getItemMeta();
  103.         itemMeta.setUnbreakable(unbreakable);
  104.         itemStack.setItemMeta(itemMeta);
  105.         return this;
  106.     }
  107.  
  108.     public ItemBuilder addItemFlags(ItemFlag... itemFlag){
  109.         ItemMeta itemMeta = itemStack.getItemMeta();
  110.         itemMeta.addItemFlags(itemFlag);
  111.         itemStack.setItemMeta(itemMeta);
  112.         return this;
  113.     }
  114.  
  115.     public ItemBuilder removeItemFlags(ItemFlag... itemFlag){
  116.         ItemMeta itemMeta = itemStack.getItemMeta();
  117.         itemMeta.removeItemFlags(itemFlag);
  118.         itemStack.setItemMeta(itemMeta);
  119.         return this;
  120.     }
  121.  
  122.     public ItemBuilder setGlowing(boolean glowing){
  123.         ItemMeta itemMeta = itemStack.getItemMeta();
  124.         itemMeta.addEnchant(Enchantment.LURE, 1, true);
  125.         itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
  126.         itemStack.setItemMeta(itemMeta);
  127.         return this;
  128.     }
  129.  
  130.     public ItemStack build(){
  131.         return itemStack;
  132.     }
  133. }
Advertisement
RAW Paste Data Copied
Advertisement