Advertisement
KimiMaro_

BuildItem

Aug 21st, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. package me.kimimaro;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7.  
  8. import org.bukkit.Material;
  9. import org.bukkit.enchantments.Enchantment;
  10. import org.bukkit.inventory.ItemFlag;
  11. import org.bukkit.inventory.ItemStack;
  12. import org.bukkit.inventory.meta.ItemMeta;
  13.  
  14. public class BuildItem {
  15.  
  16. private Material material;
  17. private String name;
  18. private int amount;
  19. private int data;
  20. private List<String> lore;
  21. private List<ItemFlag> flags;
  22. private Map<Enchantment, Integer> enchantment;
  23.  
  24. // Constructeur Material + Quantité
  25. public BuildItem(Material material, int amount){
  26. this.material = material;
  27. this.amount = amount;
  28. this.data = 0;
  29. }
  30.  
  31. //Constructeur Material seulement, la quantité sera 1 par défaut.
  32. public BuildItem(Material material){
  33. this.material = material;
  34. this.amount = 1;
  35. this.data = 0;
  36. }
  37.  
  38. //Spécifier le nom de l'item
  39. public BuildItem withName(String name){
  40. this.name = name;
  41. return this;
  42. }
  43. //Spécifier la quantité d'item
  44. public BuildItem withAmount(int amount){
  45. this.amount = amount;
  46. return this;
  47. }
  48. //Spécifier la data d'item (ex. Couleur de laine, Type de terre etc...)
  49. public BuildItem withData(int data){
  50. this.data = data;
  51. return this;
  52. }
  53. //Spécifier la description d'item
  54. public BuildItem withLore(List<String> lore){
  55. this.lore = lore;
  56. return this;
  57. }
  58. //Spécifier l'enchantement appliqué sur l'item
  59. public BuildItem withEnchantment(Enchantment enchant, int level){
  60. if(this.enchantment == null){
  61. this.enchantment = new HashMap<Enchantment, Integer>();
  62. }
  63.  
  64. this.enchantment.put(enchant, Integer.valueOf(level));
  65. return this;
  66. }
  67. //Spécifier l'ItemFlag appliqué sur l'item
  68. public BuildItem withFlag(ItemFlag flag){
  69. if(this.flags == null){
  70. this.flags = new ArrayList<ItemFlag>();
  71. }
  72.  
  73. this.flags.add(flag);
  74. return this;
  75. }
  76. //Permet de convertir l'objet BuildItem en ItemStack afin de pouvoir le give au joueur.
  77. public ItemStack build(){
  78. ItemStack item = new ItemStack(this.material, this.amount);
  79. ItemMeta itemM = item.getItemMeta();
  80. itemM.setLore(lore);
  81. if(this.name != null){
  82. itemM.setDisplayName(this.name);
  83. }
  84.  
  85. if(this.enchantment != null){
  86. for(Map.Entry<Enchantment, Integer> entry : this.enchantment.entrySet()){
  87. itemM.addEnchant((Enchantment) entry.getKey(), (Integer) entry.getValue(), true);
  88. }
  89. }
  90.  
  91. if(this.flags != null){
  92. itemM.addItemFlags((ItemFlag[]) this.flags.toArray(new ItemFlag[this.flags.size()]));
  93. }
  94.  
  95. item.setItemMeta(itemM);
  96. return item;
  97.  
  98.  
  99. }
  100.  
  101.  
  102.  
  103. /*
  104. * Getters and setters
  105. */
  106.  
  107. public Material getMaterial() {
  108. return material;
  109. }
  110.  
  111. public void setMaterial(Material material) {
  112. this.material = material;
  113. }
  114.  
  115. public String getName() {
  116. return name;
  117. }
  118.  
  119. public void setName(String name) {
  120. this.name = name;
  121. }
  122.  
  123. public int getAmount() {
  124. return amount;
  125. }
  126.  
  127. public void setAmount(int amount) {
  128. this.amount = amount;
  129. }
  130.  
  131. public int getData() {
  132. return data;
  133. }
  134.  
  135. public void setData(int data) {
  136. this.data = data;
  137. }
  138.  
  139. public List<String> getLore() {
  140. return lore;
  141. }
  142.  
  143. public void setLore(List<String> lore) {
  144. this.lore = lore;
  145. }
  146.  
  147. public List<ItemFlag> getFlags() {
  148. return flags;
  149. }
  150.  
  151. public void setFlags(List<ItemFlag> flags) {
  152. this.flags = flags;
  153. }
  154.  
  155. public Map<Enchantment, Integer> getEnchantment() {
  156. return enchantment;
  157. }
  158.  
  159. public void setEnchantment(Map<Enchantment, Integer> enchantment) {
  160. this.enchantment = enchantment;
  161. }
  162.  
  163.  
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement