Guest User

Bukkit Spigot Kits

a guest
May 29th, 2017
52
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package test;
  2.  
  3. import java.io.ByteArrayInputStream;
  4.  
  5. import org.bukkit.ChatColor;
  6. import org.bukkit.command.Command;
  7. import org.bukkit.command.CommandSender;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.inventory.ItemStack;
  10. import org.bukkit.plugin.java.JavaPlugin;
  11. import org.bukkit.util.io.BukkitObjectInputStream;
  12. import org.bukkit.util.io.BukkitObjectOutputStream;
  13. import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
  14.  
  15. import net.minecraft.util.org.apache.commons.io.output.ByteArrayOutputStream;
  16.  
  17. public class Main4 extends JavaPlugin {
  18.    
  19.     public static String itemStackArrayToBase64(ItemStack[] items) {
  20.         try {
  21.             ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  22.             BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
  23.             dataOutput.writeInt(items.length);
  24.             for (int i=0; i<items.length; i++) {
  25.                 dataOutput.writeObject(items[i]);
  26.             }
  27.             dataOutput.close();
  28.             return Base64Coder.encodeLines(outputStream.toByteArray());
  29.         } catch (Exception e) {
  30.             return null;
  31.         }
  32.     }
  33.    
  34.     public static ItemStack[] itemStackArrayFromBase64(String data) {
  35.         try {
  36.             ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
  37.             BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
  38.             ItemStack[] items = new ItemStack[dataInput.readInt()];
  39.             for (int i=0; i<items.length; i++) {
  40.                 items[i] = (ItemStack) dataInput.readObject();
  41.             }
  42.             dataInput.close();
  43.             return items;
  44.         } catch (Exception e) {
  45.             return null;
  46.         }
  47.     }
  48.    
  49.     @Override
  50.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  51.        
  52.         if(sender instanceof Player) {
  53.            
  54.             Player player = (Player) sender;
  55.            
  56.             if(label.equalsIgnoreCase("save")) {
  57.                 String armor = itemStackArrayToBase64(player.getInventory().getArmorContents());
  58.                 String inv = itemStackArrayToBase64(player.getInventory().getContents());
  59.                 getConfig().set("Kit.Armor", armor);
  60.                 getConfig().set("Kit.Inventory", inv);
  61.                 saveConfig();
  62.                 player.sendMessage(ChatColor.GREEN + "Kit saved!");
  63.             }
  64.            
  65.             if(label.equalsIgnoreCase("load")) {
  66.                 if(getConfig().contains("Kit.Armor") && getConfig().contains("Kit.Inventory")) {
  67.                     String armor = getConfig().getString("Kit.Armor");
  68.                     String inv = getConfig().getString("Kit.Inventory");
  69.                     player.getInventory().setArmorContents(itemStackArrayFromBase64(armor));
  70.                     player.getInventory().setContents(itemStackArrayFromBase64(inv));
  71.                     player.sendMessage(ChatColor.GREEN + "Kit loaded!");
  72.                 } else {
  73.                     player.sendMessage(ChatColor.RED + "Kit is not saved!");
  74.                 }
  75.             }
  76.         }
  77.        
  78.         return true;
  79.     }
  80.  
  81. }
RAW Paste Data