Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. package me.adrian.venix.utils;
  2.  
  3. import org.bukkit.Material;
  4. import org.bukkit.enchantments.Enchantment;
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.inventory.ItemStack;
  7. import org.bukkit.inventory.meta.ItemMeta;
  8. import org.bukkit.inventory.meta.SkullMeta;
  9.  
  10. import java.util.ArrayList;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Map;
  14.  
  15. public class ItemStackBuilder {
  16.  
  17. private Material material;
  18. private int amount;
  19. private byte durability;
  20. private List<String> lore;
  21. private String name;
  22. private Map<Enchantment, Integer> enchantments;
  23. private boolean unbreakable;
  24.  
  25. public ItemStackBuilder() {
  26. // -- default stuff so we don't get errors when creating the item --
  27. this.material = Material.STONE;
  28. this.amount = 1;
  29. this.durability = (short) 0;
  30. this.lore = new ArrayList<>();
  31. this.name = null;
  32. this.enchantments = new HashMap<>();
  33. this.unbreakable = false;
  34. }
  35.  
  36. public ItemStackBuilder setMaterial(Material material) {
  37. this.material = material;
  38. return this;
  39. }
  40.  
  41. public ItemStackBuilder setAmount(int amount) {
  42. this.amount = amount;
  43. return this;
  44. }
  45.  
  46. public ItemStackBuilder setDurability(byte durability) {
  47. this.durability = durability;
  48. return this;
  49. }
  50.  
  51. public ItemStackBuilder addLore(String lore) {
  52. this.lore.add(lore);
  53. return this;
  54. }
  55.  
  56. public ItemStackBuilder setLore(List<String> lore) {
  57. this.lore = lore;
  58. return this;
  59. }
  60.  
  61. public ItemStackBuilder setName(String name) {
  62. this.name = name;
  63. return this;
  64. }
  65.  
  66. public ItemStackBuilder setUnbreakable(boolean unbreakable) {
  67. this.unbreakable = unbreakable;
  68. return this;
  69. }
  70.  
  71. public ItemStackBuilder addEnchantment(Enchantment enchantment, int level) {
  72. this.enchantments.put(enchantment, level);
  73. return this;
  74. }
  75.  
  76. public ItemStack build() {
  77. // -- create ItemStack --
  78. ItemStack itemStack = new ItemStack(material, amount, durability);
  79. ItemMeta itemMeta = itemStack.getItemMeta();
  80.  
  81. // -- set meta --
  82. itemMeta.setLore(lore);
  83. itemMeta.setDisplayName(name);
  84. itemMeta.spigot().setUnbreakable(unbreakable);
  85. itemStack.setItemMeta(itemMeta);
  86. itemStack.addEnchantments(enchantments);
  87.  
  88. return itemStack;
  89. }
  90.  
  91. public ItemStack buildCustomHead(Player owner) {
  92. return buildCustomHead(owner.getName());
  93. }
  94.  
  95. public ItemStack buildCustomHead(String owner) {
  96. ItemStack itemStack = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  97. SkullMeta skull = (SkullMeta) itemStack.getItemMeta();
  98.  
  99. skull.setDisplayName(name);
  100. skull.setOwner(owner);
  101. skull.setLore(lore);
  102. itemStack.setItemMeta(skull);
  103. itemStack.addEnchantments(enchantments);
  104.  
  105. return itemStack;
  106. }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement