From 9452bcb5a3a8b5ea5ad6141e481e23159faa2ee0 Mon Sep 17 00:00:00 2001 From: graywolf336 Date: Sat, 2 Apr 2016 13:40:18 -0500 Subject: [PATCH] Fix #118, armor being duplicated. --- .../com/graywolf336/jail/PrisonerManager.java | 23 +++---------------- src/main/java/com/graywolf336/jail/Util.java | 16 ------------- 2 files changed, 3 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/graywolf336/jail/PrisonerManager.java b/src/main/java/com/graywolf336/jail/PrisonerManager.java index 6eac161..ae5cb61 100644 --- a/src/main/java/com/graywolf336/jail/PrisonerManager.java +++ b/src/main/java/com/graywolf336/jail/PrisonerManager.java @@ -275,7 +275,6 @@ public class PrisonerManager { //Get the separate inventory, so we can iterate of them ItemStack[] inventory = player.getInventory().getContents(); - ItemStack[] armor = player.getInventory().getArmorContents(); for(ItemStack item : inventory) { if(item != null) { @@ -287,19 +286,7 @@ public class PrisonerManager { } } } - - for(ItemStack item : armor) { - if(item != null) { - if(!Util.isStringInsideList(item.getType().toString(), blacklist)) { - int i = chest.firstEmpty(); - if(i != -1) {//Check that we have got a free spot, should never happen but just in case - chest.setItem(i, item); - } - } - } - } - - player.getInventory().setArmorContents(null); + player.getInventory().clear(); }else { for(ItemStack item : player.getInventory().getContents()) @@ -312,9 +299,7 @@ public class PrisonerManager { if(Util.isStringInsideList(item.getType().toString(), blacklist)) player.getInventory().remove(item); - String[] inv = Util.playerInventoryToBase64(player.getInventory()); - prisoner.setInventory(inv[0]); - prisoner.setArmor(inv[1]); + prisoner.setInventory(Util.toBase64(player.getInventory())); player.getInventory().setArmorContents(null); player.getInventory().clear(); @@ -344,9 +329,7 @@ public class PrisonerManager { if(Util.isStringInsideList(item.getType().toString(), blacklist)) player.getInventory().remove(item); - String[] inv = Util.playerInventoryToBase64(player.getInventory()); - prisoner.setInventory(inv[0]); - prisoner.setArmor(inv[1]); + prisoner.setInventory(Util.toBase64(player.getInventory())); player.getInventory().setArmorContents(null); player.getInventory().clear(); diff --git a/src/main/java/com/graywolf336/jail/Util.java b/src/main/java/com/graywolf336/jail/Util.java index 01276bd..f03b769 100644 --- a/src/main/java/com/graywolf336/jail/Util.java +++ b/src/main/java/com/graywolf336/jail/Util.java @@ -17,7 +17,6 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.util.Vector; import org.bukkit.util.io.BukkitObjectInputStream; @@ -345,21 +344,6 @@ public class Util { return unused; } - /** - * Converts the player inventory to a String array of Base64 strings. First string is the content and second string is the armor. - * - * @param playerInventory to turn into an array of strings. - * @return Array of strings: [ main content, armor content ] - * @throws IllegalStateException if any of the {@link ItemStack}s couldn't be parsed - */ - public static String[] playerInventoryToBase64(PlayerInventory playerInventory) throws IllegalStateException { - //get the main content part, this doesn't return the armor - String content = toBase64(playerInventory); - String armor = itemStackArrayToBase64(playerInventory.getArmorContents()); - - return new String[] { content, armor }; - } - /** * * A method to serialize an {@link ItemStack} array to Base64 String.