daily pastebin goal
3%
SHARE
TWEET

Untitled

a guest Feb 20th, 2019 76 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.    public static String itemArrayToBase(ItemStack[] items) throws IllegalStateException {
  2.         try {
  3.             ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  4.             BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
  5.  
  6.             dataOutput.writeInt(items.length);
  7.  
  8.             for (int i = 0; i < items.length; i++) {
  9.                 dataOutput.writeObject(items[i]);
  10.             }
  11.  
  12.             dataOutput.close();
  13.             return Base64Coder.encodeLines(outputStream.toByteArray());
  14.         } catch (Exception e) {
  15.             throw new IllegalStateException("Unable to save item stacks.", e);
  16.         }
  17.     }
  18.  
  19.     public static ItemStack[] itemStackArrayFromBase64(String data) throws IOException {
  20.         try {
  21.             ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
  22.             BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
  23.             ItemStack[] items = new ItemStack[dataInput.readInt()];
  24.  
  25.             for (int i = 0; i < items.length; i++) {
  26.                 items[i] = (ItemStack) dataInput.readObject();
  27.             }
  28.  
  29.             dataInput.close();
  30.             return items;
  31.         } catch (ClassNotFoundException e) {
  32.             throw new IOException("Unable to decode class type.", e);
  33.         }
  34.     }
  35.  
  36.     // itemcomplet
  37.     public static String itemArrayToBaseIt(List<ItemComplet> items) throws IllegalStateException {
  38.         try {
  39.             ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  40.             DataOutputStream dataOutput = new DataOutputStream(outputStream);
  41.             ItemStack[] itemstacks = new ItemStack[items.size()];
  42.             Integer[] slots = new Integer[items.size()];
  43.             for (int i = 0; i < items.size(); i++) {
  44.                 itemstacks[i] = items.get(i).getItemstack();
  45.                 slots[i] = items.get(i).getSlot();
  46.             }
  47.             dataOutput.writeUTF(itemArrayToBase(itemstacks));
  48.             StringBuilder sb = new StringBuilder();
  49.             for (int slot : slots) {
  50.                 sb.append(slot + ";");
  51.             }
  52.             dataOutput.writeUTF(sb.toString());
  53.             dataOutput.close();
  54.             return Base64Coder.encodeLines(outputStream.toByteArray());
  55.         } catch (Exception e) {
  56.             throw new IllegalStateException("Unable to save item stacks.", e);
  57.         }
  58.     }
  59.  
  60.     public static ItemComplet[] itemStackArrayFromBase64ItemComplet(String data) throws IOException {
  61.         ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
  62.         DataInputStream dataInput = new DataInputStream(inputStream);
  63.         String decode = dataInput.readUTF();
  64.         String s = dataInput.readUTF();
  65.         String[] slotstableau = s.split(";");
  66.         List<ItemStack> items = Arrays.asList(itemStackArrayFromBase64(decode));
  67.         ItemComplet[] i = new ItemComplet[items.size()];
  68.         for (int k = 0; k < items.size(); k++) {
  69.             ItemComplet itemComplet = new ItemComplet();
  70.             itemComplet.setItemstack(items.get(k));
  71.             itemComplet.setSlot(Integer.parseInt(slotstableau[k]));
  72.             i[k] = itemComplet;
  73.         }
  74.  
  75.         dataInput.close();
  76.         return i;
  77.     }
  78.  
  79.     public static String getInventorySerialiserPlayer(PlayerInventory playerInventory) {
  80.         List<ItemComplet> contentItem = new ArrayList<>();
  81.         int slot = 0;
  82.         for (ItemStack itemStack : playerInventory) {
  83.             if (itemStack != null && itemStack.getType() != Material.AIR) {
  84.                 ItemComplet itemComplet = new ItemComplet();
  85.                 itemComplet.setItemstack(itemStack);
  86.                 itemComplet.setSlot(slot);
  87.                 contentItem.add(itemComplet);
  88.             }
  89.             slot++;
  90.         }
  91.         return InventorySerializer.itemArrayToBaseIt(contentItem);
  92.     }
  93.  
  94.     public static String getInventorySerialiserPlayerArmor(List<ItemStack> armor) {
  95.         List<ItemComplet> contentItem = new ArrayList<>();
  96.         int slot = 0;
  97.         for (ItemStack itemStack : armor) {
  98.             if (itemStack != null && itemStack.getType() != Material.AIR) {
  99.                 ItemComplet itemComplet = new ItemComplet();
  100.                 itemComplet.setItemstack(itemStack);
  101.                 itemComplet.setSlot(slot);
  102.                 contentItem.add(itemComplet);
  103.             }
  104.             slot++;
  105.         }
  106.         return InventorySerializer.itemArrayToBaseIt(contentItem);
  107.     }
  108.  
  109.     public static String getInventorySerialiser(Inventory inventory) {
  110.         ItemStack[] contents = inventory.getContents();
  111.         List<ItemComplet> contentItem = new ArrayList<>();
  112.         int slot = 0;
  113.         for (int k = 0; k < contents.length; k++) {
  114.             ItemStack itemStack = contents[k];
  115.             if (itemStack == null || itemStack.getType() == null || itemStack.getType() == Material.AIR) continue;
  116.             ItemComplet itemComplet = new ItemComplet();
  117.             itemComplet.setItemstack(itemStack);
  118.             itemComplet.setSlot(slot++);
  119.             contentItem.add(itemComplet);
  120.         }
  121.         return InventorySerializer.itemArrayToBaseIt(contentItem);
  122.     }
  123.  
  124.     public static Inventory getInventoryBySerialiser(String serialisedinventory, Integer size) {
  125.         ItemComplet[] contents = null;
  126.         try {
  127.             contents = InventorySerializer.itemStackArrayFromBase64ItemComplet(serialisedinventory);
  128.         } catch (IOException e) {
  129.             e.printStackTrace();
  130.         }
  131.         Inventory inventory;
  132.         String inventoryname = SkyCore.getInstance().getConfigLoader().getEnderchest_name().replace("%size%", "" + size);
  133.         if (contents != null) {
  134.             inventory = Bukkit.createInventory(null, 9 * size, inventoryname);
  135.             for (ItemComplet item : contents) {
  136.                 inventory.setItem(item.getSlot(), item.getItemstack());
  137.             }
  138.         } else inventory = Bukkit.createInventory(null, 9 * size, inventoryname);
  139.         return inventory;
  140.     }
  141.  
  142. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top