/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.laytonsmith.abstraction.bukkit; import com.laytonsmith.abstraction.AbstractionObject; import com.laytonsmith.abstraction.MCEnchantment; import com.laytonsmith.abstraction.MCItemMeta; import com.laytonsmith.abstraction.enums.MCItemFlag; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.Repairable; /** * * */ public class BukkitMCItemMeta implements MCItemMeta { ItemMeta im; public BukkitMCItemMeta(ItemMeta im) { this.im = im; } public BukkitMCItemMeta(AbstractionObject o) { im = (ItemMeta)o; } @Override public boolean hasDisplayName() { return im.hasDisplayName(); } @Override public String getDisplayName() { return im.getDisplayName(); } @Override public void setDisplayName(String name) { im.setDisplayName(name); } @Override public boolean hasLore() { return im.hasLore(); } @Override public List<String> getLore() { return im.getLore(); } @Override public void setLore(List<String> lore) { im.setLore(lore); } @Override public boolean hasEnchants() { return im.hasEnchants(); } @Override public Map<MCEnchantment, Integer> getEnchants() { Map<MCEnchantment, Integer> map = new HashMap<MCEnchantment, Integer>(); for(Entry<Enchantment, Integer> entry : im.getEnchants().entrySet()) { map.put(new BukkitMCEnchantment(entry.getKey()), entry.getValue()); } return map; } @Override public boolean addEnchant(MCEnchantment ench, int level, boolean ignoreLevelRestriction) { return im.addEnchant(((BukkitMCEnchantment) ench).__Enchantment(), level, ignoreLevelRestriction); } @Override public boolean removeEnchant(MCEnchantment ench) { return im.removeEnchant(((BukkitMCEnchantment) ench).__Enchantment()); } @Override public Object getHandle() { return im; } public ItemMeta asItemMeta() { return im; } @Override public boolean equals(Object obj) { return im.equals(obj); } @Override public int hashCode() { return im.hashCode(); } @Override public String toString() { return im.toString(); } @Override public boolean hasRepairCost() { return ((Repairable) im).hasRepairCost(); } @Override public int getRepairCost() { return ((Repairable) im).getRepairCost(); } @Override public void setRepairCost(int cost) { ((Repairable) im).setRepairCost(cost); } @Override public void addItemFlags(MCItemFlag... flags) { for(MCItemFlag flag : flags) { im.addItemFlags(ItemFlag.valueOf(flag.name())); } } @Override public Set<MCItemFlag> getItemFlags() { Set<ItemFlag> flags = im.getItemFlags(); Set<MCItemFlag> ret = new HashSet<>(flags.size()); for(ItemFlag flag : flags) { ret.add(MCItemFlag.valueOf(flag.name())); } return ret; } }