Guest User

Untitled

a guest
Jul 30th, 2014
890
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.90 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import org.apache.commons.lang.StringUtils;
  6. import org.bukkit.Material;
  7. import org.bukkit.enchantments.Enchantment;
  8. import org.bukkit.inventory.ItemStack;
  9. import org.bukkit.inventory.meta.ItemMeta;
  10. import org.bukkit.material.MaterialData;
  11.  
  12.  
  13. public final  class ItemStackUtils {
  14.         public static String getEnchants(ItemStack i){
  15.             List<String> e = new ArrayList<String>();
  16.             Map<Enchantment, Integer> en = i.getEnchantments();
  17.             for(Enchantment t : en.keySet()) {
  18.                 e.add(t.getName() + ":" +en.get(t));
  19.             }
  20.             return StringUtils.join(e, ",");
  21.         }
  22.         public static String deserialize (ItemStack i){
  23.           String[] parts = new String[6];
  24.           parts[0] = i.getType().name();
  25.           parts [1] = Integer.toString(i.getAmount());
  26.           parts [2] = String.valueOf(i.getDurability());
  27.           parts [3] = i.getItemMeta().getDisplayName();
  28.           parts [4] = String.valueOf (i.getData().getData());
  29.           parts [5] = getEnchants(i);
  30.           return StringUtils.join(parts, ";");
  31.  
  32.         }
  33.         public ItemStack deserial(String p){
  34.        
  35.         String[] a = p.split(";");
  36.         ItemStack i = new ItemStack(Material.getMaterial(a[0]), Integer.parseInt (a [1]));
  37.         i.setDurability((short) Integer.parseInt(a [2]));
  38.         ItemMeta meta = i.getItemMeta();
  39.         meta.setDisplayName(a[3]);
  40.         i.setItemMeta(meta);
  41.         MaterialData data = i.getData();
  42.         data.setData ((byte) Integer.parseInt (a[4]));
  43.         i.setData(data);
  44.         if (a.length > 5) {
  45.             String[] parts = a[5].split(",");
  46.             for(String s : parts) {
  47.                 String label = s.split(":")[0];
  48.                 String amplifier = s.split(":")[1];
  49.                 Enchantment type = Enchantment.getByName(label);
  50.                 if(type == null) {
  51.                     continue;
  52.                 }
  53.                 int f;
  54.                 try {
  55.                     f = Integer.parseInt(amplifier);
  56.                 }catch(Exception ex) {
  57.                     continue;
  58.                 }
  59.                 i.addEnchantment(type, f);
  60.             }
  61.         }
  62.         return i;
  63.         }
  64.        
  65. }
Advertisement
Add Comment
Please, Sign In to add comment