CYADEM

InventoryMaker | Tinchx JD

Jun 3rd, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. package me.tinchx.hcfactions.hcfactions.utilities;
  2.  
  3. import me.tinchx.hcfactions.util.ColorText;
  4. import org.bukkit.Bukkit;
  5. import org.bukkit.event.inventory.InventoryType;
  6. import org.bukkit.inventory.Inventory;
  7. import org.bukkit.inventory.InventoryHolder;
  8. import org.bukkit.inventory.ItemStack;
  9. import org.bukkit.util.io.BukkitObjectInputStream;
  10. import org.bukkit.util.io.BukkitObjectOutputStream;
  11. import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
  12.  
  13. import java.io.ByteArrayInputStream;
  14. import java.io.ByteArrayOutputStream;
  15. import java.io.IOException;
  16. import java.util.HashMap;
  17. import java.util.Map;
  18.  
  19. public class InventoryMaker {
  20.  
  21. private Inventory Inventory;
  22.  
  23. public InventoryMaker(InventoryHolder owner, int rows) {
  24. this.Inventory = Bukkit.createInventory(owner, rows * 9);
  25. }
  26.  
  27. public InventoryMaker(InventoryHolder owner, InventoryType type) {
  28. this.Inventory = Bukkit.createInventory(owner, type);
  29. }
  30.  
  31. public InventoryMaker(InventoryHolder owner, int rows, String title) {
  32. this.Inventory = Bukkit.createInventory(owner, rows * 9, ColorText.translate(title));
  33. }
  34.  
  35. public InventoryMaker(InventoryHolder owner, InventoryType type, String title) {
  36. this.Inventory = Bukkit.createInventory(owner, type, ColorText.translate(title));
  37. }
  38.  
  39. public InventoryMaker setItem(int slot, ItemStack stack) {
  40. this.Inventory.setItem(slot, stack);
  41. return this;
  42. }
  43.  
  44. public InventoryMaker setItems(Map<Integer, ItemStack> items) {
  45. int is = 0;
  46. for(ItemStack is1: items.values()) {
  47. if(is1 != null) {
  48. this.Inventory.setItem(is, is1);
  49. }
  50. is++;
  51. }
  52. return this;
  53. }
  54.  
  55. public InventoryMaker addItem(ItemStack stack) {
  56. this.Inventory.addItem(new ItemStack[] { stack });
  57. return this;
  58. }
  59.  
  60. public String toStack() {
  61. try
  62. {
  63. ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  64. BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
  65. dataOutput.writeInt(this.Inventory.getSize());
  66. for (int i = 0; i < this.Inventory.getSize(); i++) {
  67. dataOutput.writeObject(this.Inventory.getItem(i));
  68. }
  69. dataOutput.close();
  70. return Base64Coder.encodeLines(outputStream.toByteArray());
  71. }
  72. catch (Exception e)
  73. {
  74. throw new IllegalStateException("Error: Unable to save item stacks!", e);
  75. }
  76. }
  77.  
  78. public Map<Integer, ItemStack> fromStack(String f) {
  79. Map<Integer, ItemStack> items = new HashMap();
  80. try
  81. {
  82. ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(f));
  83. BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
  84. int size = dataInput.readInt();
  85. for (int i = 0; i < size; i++) {
  86. items.put(Integer.valueOf(i), (ItemStack)dataInput.readObject());
  87. }
  88. dataInput.close();
  89. } catch (IOException |ClassNotFoundException ex) {
  90. ex.printStackTrace();
  91. }
  92. return items;
  93. }
  94.  
  95. public Inventory create() {
  96. return Inventory;
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment