Advertisement
KingFaris13

Bukkit - Saving and loading inventories.

Oct 6th, 2013
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.23 KB | None | 0 0
  1.     private Map<String, ItemStack[]> playerInventories = new HashMap<String, ItemStack[]>();
  2.    
  3.     private void saveInventory(Player p) {
  4.         PlayerInventory pInv = p.getInventory();
  5.         Collection<ItemStack> items = new ArrayList<ItemStack>();
  6.         items.addAll(Arrays.asList(pInv.getContents()));
  7.         items.addAll(Arrays.asList(pInv.getArmorContents()));
  8.  
  9.         ItemStack[] inventoryItems = items.toArray(new ItemStack[] {});
  10.         this.playerInventories.put(p.getName(), inventoryItems);
  11.     }
  12.  
  13.     @SuppressWarnings("deprecation")
  14.     private void resetInventory(Player p) {
  15.         if (!this.playerInventories.containsKey(p.getName())) return;
  16.         p.getInventory().clear();
  17.         p.getInventory().setArmorContents(null);
  18.         ItemStack[] inventoryItems = this.playerInventories.get(p.getName());
  19.         ItemStack[] playerItems = new ItemStack[inventoryItems.length - 4];
  20.         ItemStack[] playerArmour = new ItemStack[4];
  21.         int armourI = 0;
  22.         for (int i = 0; i < inventoryItems.length; i++) {
  23.             if (i < inventoryItems.length - 4) {
  24.                 playerItems[i] = inventoryItems[i];
  25.             } else {
  26.                 playerArmour[armourI] = inventoryItems[i];
  27.                 armourI++;
  28.             }
  29.         }
  30.         p.getInventory().setContents(playerItems);
  31.         p.getInventory().setArmorContents(playerArmour);
  32.         p.updateInventory();
  33.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement