ItemOptions.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package me.lethunderhawk.fluxapi.util.itemdesign;
  2. import me.lethunderhawk.fluxapi.util.UnItalic;
  3. import net.kyori.adventure.text.Component;
  4. import org.bukkit.Material;
  5. import org.bukkit.inventory.ItemStack;
  6. import org.bukkit.inventory.meta.ItemMeta;
  7. import java.util.List;
  8. public class ItemOptions {
  9. private Component name;
  10. private List<Component> lore;
  11. private int amount = 1;
  12. private Material material;
  13. /**
  14. * Simple way to customize Items
  15. * @param material The Base material
  16. */
  17. public ItemOptions(Material material){
  18. this.material = material;
  19. }
  20. /**
  21. * Creates the {@link ItemStack} from Scratch
  22. * @return The {@link ItemStack} with the Properties specified
  23. */
  24. public ItemStack buildItemStack(){
  25. ItemStack item = new ItemStack(material);
  26. item.setAmount(amount);
  27. ItemMeta meta = item.getItemMeta();
  28. meta.lore(lore);
  29. meta.displayName(name);
  30. item.setItemMeta(UnItalic.removeItalicFromMeta(meta));
  31. return item;
  32. }
  33. // ====== Getters and Setters ======
  34. public Component getName() {
  35. return name;
  36. }
  37. public ItemOptions setName(Component name) {
  38. this.name = name;
  39. return this;
  40. }
  41. public List<Component> getLore() {
  42. return lore;
  43. }
  44. public ItemOptions setLore(List<Component> lore) {
  45. this.lore = lore;
  46. return this;
  47. }
  48. public int getAmount() {
  49. return amount;
  50. }
  51. public ItemOptions setAmount(int amount) {
  52. this.amount = amount;
  53. return this;
  54. }
  55. public Material getMaterial() {
  56. return material;
  57. }
  58. public ItemOptions setMaterial(Material material) {
  59. this.material = material;
  60. return this;
  61. }
  62. }