Add ability to change vault size (buggy, fix permissions later)

This commit is contained in:
gomeow
2013-06-13 00:01:00 -07:00
parent b832fa839f
commit 1635a84952
4 changed files with 18 additions and 10 deletions
@@ -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);
@@ -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;
@@ -72,8 +72,8 @@ public class Serialization {
return result;
}
public static Inventory toInventory(List<String> stringItems, int number) {
Inventory inv = Bukkit.createInventory(null, 54, ChatColor.RED + "Vault #" + number);
public static Inventory toInventory(List<String> stringItems, int number, boolean large) {
Inventory inv = Bukkit.createInventory(null, (large) ? 54 : 27, ChatColor.RED + "Vault #" + number);
List<ItemStack> contents = new ArrayList<ItemStack>();
for(String piece:stringItems) {
if (piece.equalsIgnoreCase("null")) {
@@ -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<String> 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<String> data = new ArrayList<String>();
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;
}
}