diff --git a/src/main/java/com/drtshock/playervaults/util/Serialization.java b/src/main/java/com/drtshock/playervaults/util/Serialization.java index a8c31cf..dfb201a 100644 --- a/src/main/java/com/drtshock/playervaults/util/Serialization.java +++ b/src/main/java/com/drtshock/playervaults/util/Serialization.java @@ -73,7 +73,9 @@ public class Serialization { } public static Inventory toInventory(List stringItems, int number, boolean large) { - Inventory inv = Bukkit.createInventory(null, (large) ? 54 : 27, ChatColor.RED + "Vault #" + number); + VaultHolder holder = new VaultHolder(number); + Inventory inv = Bukkit.createInventory(holder, (large) ? 54 : 27, ChatColor.RED + "Vault #" + number); + holder.setInventory(inv); List contents = new ArrayList(); for(String piece:stringItems) { if (piece.equalsIgnoreCase("null")) { diff --git a/src/main/java/com/drtshock/playervaults/util/VaultHolder.java b/src/main/java/com/drtshock/playervaults/util/VaultHolder.java new file mode 100644 index 0000000..711f535 --- /dev/null +++ b/src/main/java/com/drtshock/playervaults/util/VaultHolder.java @@ -0,0 +1,47 @@ +package com.drtshock.playervaults.util; + +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; + +/** + * Represents a VaultHolder to assist in detection of Player Vaults from + * other plugins. + */ +public class VaultHolder implements InventoryHolder{ + + private Inventory inventory; + private int vaultNumber = 0; + + /** + * Creates a new vault holder + * + * @param vaultNumber the vault number this holder is using + */ + public VaultHolder(int vaultNumber){ + this.vaultNumber = vaultNumber; + } + + /** + * Gets the vault number this holder is currently using + * + * @return the vault number + */ + public int getVaultNumber(){ + return vaultNumber; + } + + /** + * Sets the inventory this vault holder holds + * + * @param inventory the inventory, may be null + */ + public void setInventory(Inventory inventory){ + this.inventory = inventory; + } + + @Override + public Inventory getInventory(){ + return inventory; + } + +} diff --git a/src/main/java/com/drtshock/playervaults/util/VaultManager.java b/src/main/java/com/drtshock/playervaults/util/VaultManager.java index c7c0f8f..58e0435 100644 --- a/src/main/java/com/drtshock/playervaults/util/VaultManager.java +++ b/src/main/java/com/drtshock/playervaults/util/VaultManager.java @@ -68,7 +68,9 @@ public class VaultManager { } else { YamlConfiguration playerFile = getPlayerVaultFile(holder); if (playerFile.getConfigurationSection("vault" + number) == null) { - inv = Bukkit.createInventory(null, 54, ChatColor.DARK_RED + "Vault #" + String.valueOf(number)); + VaultHolder vaultHolder = new VaultHolder(number); + inv = Bukkit.createInventory(vaultHolder, 54, ChatColor.DARK_RED + "Vault #" + String.valueOf(number)); + vaultHolder.setInventory(inv); } else { List data = new ArrayList(); for(int x = 0; x < ((large) ? 54 : 27); x++) { @@ -96,7 +98,9 @@ public class VaultManager { YamlConfiguration playerFile = getPlayerVaultFile(holder); List data = playerFile.getStringList("vault" + number); if (data == null) { - Inventory inv = Bukkit.createInventory(null, 54, ChatColor.GREEN + "Vault #" + String.valueOf(number)); + VaultHolder vaultHolder = new VaultHolder(number); + Inventory inv = Bukkit.createInventory(vaultHolder, 54, ChatColor.GREEN + "Vault #" + String.valueOf(number)); + vaultHolder.setInventory(inv); return inv; } else { Inventory inv = Serialization.toInventory(data, number, true);