Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.kimimaro;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.bukkit.Material;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.inventory.ItemFlag;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- public class BuildItem {
- private Material material;
- private String name;
- private int amount;
- private int data;
- private List<String> lore;
- private List<ItemFlag> flags;
- private Map<Enchantment, Integer> enchantment;
- // Constructeur Material + Quantité
- public BuildItem(Material material, int amount){
- this.material = material;
- this.amount = amount;
- this.data = 0;
- }
- //Constructeur Material seulement, la quantité sera 1 par défaut.
- public BuildItem(Material material){
- this.material = material;
- this.amount = 1;
- this.data = 0;
- }
- //Spécifier le nom de l'item
- public BuildItem withName(String name){
- this.name = name;
- return this;
- }
- //Spécifier la quantité d'item
- public BuildItem withAmount(int amount){
- this.amount = amount;
- return this;
- }
- //Spécifier la data d'item (ex. Couleur de laine, Type de terre etc...)
- public BuildItem withData(int data){
- this.data = data;
- return this;
- }
- //Spécifier la description d'item
- public BuildItem withLore(List<String> lore){
- this.lore = lore;
- return this;
- }
- //Spécifier l'enchantement appliqué sur l'item
- public BuildItem withEnchantment(Enchantment enchant, int level){
- if(this.enchantment == null){
- this.enchantment = new HashMap<Enchantment, Integer>();
- }
- this.enchantment.put(enchant, Integer.valueOf(level));
- return this;
- }
- //Spécifier l'ItemFlag appliqué sur l'item
- public BuildItem withFlag(ItemFlag flag){
- if(this.flags == null){
- this.flags = new ArrayList<ItemFlag>();
- }
- this.flags.add(flag);
- return this;
- }
- //Permet de convertir l'objet BuildItem en ItemStack afin de pouvoir le give au joueur.
- public ItemStack build(){
- ItemStack item = new ItemStack(this.material, this.amount);
- ItemMeta itemM = item.getItemMeta();
- itemM.setLore(lore);
- if(this.name != null){
- itemM.setDisplayName(this.name);
- }
- if(this.enchantment != null){
- for(Map.Entry<Enchantment, Integer> entry : this.enchantment.entrySet()){
- itemM.addEnchant((Enchantment) entry.getKey(), (Integer) entry.getValue(), true);
- }
- }
- if(this.flags != null){
- itemM.addItemFlags((ItemFlag[]) this.flags.toArray(new ItemFlag[this.flags.size()]));
- }
- item.setItemMeta(itemM);
- return item;
- }
- /*
- * Getters and setters
- */
- public Material getMaterial() {
- return material;
- }
- public void setMaterial(Material material) {
- this.material = material;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAmount() {
- return amount;
- }
- public void setAmount(int amount) {
- this.amount = amount;
- }
- public int getData() {
- return data;
- }
- public void setData(int data) {
- this.data = data;
- }
- public List<String> getLore() {
- return lore;
- }
- public void setLore(List<String> lore) {
- this.lore = lore;
- }
- public List<ItemFlag> getFlags() {
- return flags;
- }
- public void setFlags(List<ItemFlag> flags) {
- this.flags = flags;
- }
- public Map<Enchantment, Integer> getEnchantment() {
- return enchantment;
- }
- public void setEnchantment(Map<Enchantment, Integer> enchantment) {
- this.enchantment = enchantment;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement