Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.tinchx.hcfactions.hcfactions.utilities;
- import me.tinchx.hcfactions.util.ColorText;
- import org.bukkit.Bukkit;
- import org.bukkit.event.inventory.InventoryType;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.InventoryHolder;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.util.io.BukkitObjectInputStream;
- import org.bukkit.util.io.BukkitObjectOutputStream;
- import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.Map;
- public class InventoryMaker {
- private Inventory Inventory;
- public InventoryMaker(InventoryHolder owner, int rows) {
- this.Inventory = Bukkit.createInventory(owner, rows * 9);
- }
- public InventoryMaker(InventoryHolder owner, InventoryType type) {
- this.Inventory = Bukkit.createInventory(owner, type);
- }
- public InventoryMaker(InventoryHolder owner, int rows, String title) {
- this.Inventory = Bukkit.createInventory(owner, rows * 9, ColorText.translate(title));
- }
- public InventoryMaker(InventoryHolder owner, InventoryType type, String title) {
- this.Inventory = Bukkit.createInventory(owner, type, ColorText.translate(title));
- }
- public InventoryMaker setItem(int slot, ItemStack stack) {
- this.Inventory.setItem(slot, stack);
- return this;
- }
- public InventoryMaker setItems(Map<Integer, ItemStack> items) {
- int is = 0;
- for(ItemStack is1: items.values()) {
- if(is1 != null) {
- this.Inventory.setItem(is, is1);
- }
- is++;
- }
- return this;
- }
- public InventoryMaker addItem(ItemStack stack) {
- this.Inventory.addItem(new ItemStack[] { stack });
- return this;
- }
- public String toStack() {
- try
- {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
- dataOutput.writeInt(this.Inventory.getSize());
- for (int i = 0; i < this.Inventory.getSize(); i++) {
- dataOutput.writeObject(this.Inventory.getItem(i));
- }
- dataOutput.close();
- return Base64Coder.encodeLines(outputStream.toByteArray());
- }
- catch (Exception e)
- {
- throw new IllegalStateException("Error: Unable to save item stacks!", e);
- }
- }
- public Map<Integer, ItemStack> fromStack(String f) {
- Map<Integer, ItemStack> items = new HashMap();
- try
- {
- ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(f));
- BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
- int size = dataInput.readInt();
- for (int i = 0; i < size; i++) {
- items.put(Integer.valueOf(i), (ItemStack)dataInput.readObject());
- }
- dataInput.close();
- } catch (IOException |ClassNotFoundException ex) {
- ex.printStackTrace();
- }
- return items;
- }
- public Inventory create() {
- return Inventory;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment