diff --git a/src/main/java/com/drtshock/playervaults/Listeners.java b/src/main/java/com/drtshock/playervaults/Listeners.java index 14de215..5928891 100644 --- a/src/main/java/com/drtshock/playervaults/Listeners.java +++ b/src/main/java/com/drtshock/playervaults/Listeners.java @@ -168,7 +168,7 @@ public class Listeners implements Listener { owner = PlayerVaults.SIGNS.getString(world + ";;" + x + ";;" + y + ";;" + z + ".owner"); } int num = PlayerVaults.SIGNS.getInt(world + ";;" + x + ";;" + y + ";;" + z + ".chest"); - Inventory inv = PlayerVaults.VM.loadVault((self) ? player.getName() : owner, num); + Inventory inv = PlayerVaults.VM.loadVault((self) ? player.getName() : owner, num, !player.hasPermission("playervaults.small")); player.openInventory(inv); PlayerVaults.IN_VAULT.put(player.getName(), new VaultViewInfo((self) ? player.getName() : owner, num)); event.setCancelled(true); diff --git a/src/main/java/com/drtshock/playervaults/commands/VaultOperations.java b/src/main/java/com/drtshock/playervaults/commands/VaultOperations.java index e92a080..da4feee 100644 --- a/src/main/java/com/drtshock/playervaults/commands/VaultOperations.java +++ b/src/main/java/com/drtshock/playervaults/commands/VaultOperations.java @@ -46,7 +46,8 @@ public class VaultOperations { } if (checkPerms(player, number)) { if (EconomyOperations.payToOpen(player)) { - Inventory inv = PlayerVaults.VM.loadVault(player.getName(), number); + PlayerVaults.log.info(String.valueOf(player.hasPermission("playervaults.small"))); + Inventory inv = PlayerVaults.VM.loadVault(player.getName(), number, !player.hasPermission("playervaults.small")); player.openInventory(inv); player.sendMessage(Lang.TITLE.toString() + Lang.OPEN_VAULT.toString().replace("%v", arg)); return true; @@ -81,7 +82,7 @@ public class VaultOperations { } catch(NumberFormatException nfe) { player.sendMessage(Lang.TITLE.toString() + ChatColor.RED + Lang.MUST_BE_NUMBER); } - Inventory inv = PlayerVaults.VM.loadVault(holder, number); + Inventory inv = PlayerVaults.VM.loadVault(holder, number, true); player.openInventory(inv); player.sendMessage(Lang.TITLE.toString() + Lang.OPEN_OTHER_VAULT.toString().replace("%v", arg).replace("%p", holder)); return true; diff --git a/src/main/java/com/drtshock/playervaults/util/Serialization.java b/src/main/java/com/drtshock/playervaults/util/Serialization.java index 62b49eb..a8c31cf 100644 --- a/src/main/java/com/drtshock/playervaults/util/Serialization.java +++ b/src/main/java/com/drtshock/playervaults/util/Serialization.java @@ -72,8 +72,8 @@ public class Serialization { return result; } - public static Inventory toInventory(List stringItems, int number) { - Inventory inv = Bukkit.createInventory(null, 54, ChatColor.RED + "Vault #" + number); + public static Inventory toInventory(List stringItems, int number, boolean large) { + Inventory inv = Bukkit.createInventory(null, (large) ? 54 : 27, ChatColor.RED + "Vault #" + number); List contents = new ArrayList(); for(String piece:stringItems) { if (piece.equalsIgnoreCase("null")) { diff --git a/src/main/java/com/drtshock/playervaults/util/VaultManager.java b/src/main/java/com/drtshock/playervaults/util/VaultManager.java index f16956a..c7c0f8f 100644 --- a/src/main/java/com/drtshock/playervaults/util/VaultManager.java +++ b/src/main/java/com/drtshock/playervaults/util/VaultManager.java @@ -36,8 +36,15 @@ public class VaultManager { * @throws IOException Uh oh! */ public void saveVault(Inventory inventory, String player, int number) throws IOException { + int size = inventory.getSize(); YamlConfiguration yaml = getPlayerVaultFile(player); - yaml.set("vault" + number, null); + if (size == 54) { + yaml.set("vault" + number, null); + } else { + for(int x = 0; x < 27; x++) { + yaml.set("vault" + number + "." + x, null); + } + } List list = Serialization.toString(inventory); String[] ser = list.toArray(new String[list.size()]); for(int x = 0; x < ser.length; x++) { @@ -53,7 +60,7 @@ public class VaultManager { * @param holder The holder of the vault. * @param number The vault number. */ - public Inventory loadVault(String holder, int number) { + public Inventory loadVault(String holder, int number, boolean large) { VaultViewInfo info = new VaultViewInfo(holder, number); Inventory inv = null; if (PlayerVaults.OPENINVENTORIES.containsKey(info.toString())) { @@ -64,7 +71,7 @@ public class VaultManager { inv = Bukkit.createInventory(null, 54, ChatColor.DARK_RED + "Vault #" + String.valueOf(number)); } else { List data = new ArrayList(); - for(int x = 0; x < 54; x++) { + for(int x = 0; x < ((large) ? 54 : 27); x++) { String line = playerFile.getString("vault" + number + "." + x); if (line != null) { data.add(line); @@ -72,7 +79,7 @@ public class VaultManager { data.add("null"); } } - inv = Serialization.toInventory(data, number); + inv = Serialization.toInventory(data, number, large); } PlayerVaults.OPENINVENTORIES.put(info.toString(), inv); } @@ -92,7 +99,7 @@ public class VaultManager { Inventory inv = Bukkit.createInventory(null, 54, ChatColor.GREEN + "Vault #" + String.valueOf(number)); return inv; } else { - Inventory inv = Serialization.toInventory(data, number); + Inventory inv = Serialization.toInventory(data, number, true); return inv; } }