diff --git a/pom.xml b/pom.xml index 5f14f02..e4b205e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.drtshock PlayerVaultsX - 4.0.6 + 4.0.7 PlayerVaultsX https://www.spigotmc.org/resources/51204/ diff --git a/src/main/java/com/drtshock/playervaults/vaultmanagement/Base64Serialization.java b/src/main/java/com/drtshock/playervaults/vaultmanagement/Base64Serialization.java index a8c2c8d..fdd57ae 100644 --- a/src/main/java/com/drtshock/playervaults/vaultmanagement/Base64Serialization.java +++ b/src/main/java/com/drtshock/playervaults/vaultmanagement/Base64Serialization.java @@ -16,13 +16,13 @@ import java.io.ByteArrayOutputStream; */ public class Base64Serialization { - public static String toBase64(Inventory inventory) { + public static String toBase64(Inventory inventory, int size) { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream); // Write the size of the inventory - dataOutput.writeInt(inventory.getSize()); + dataOutput.writeInt(size); // Save every element in the list for (int i = 0; i < inventory.getSize(); i++) { @@ -40,7 +40,7 @@ public class Base64Serialization { public static String toBase64(ItemStack[] is, int size) { Inventory inventory = Bukkit.createInventory(null, size); inventory.setContents(is); - return toBase64(inventory); + return toBase64(inventory, size); } public static Inventory fromBase64(String data) { @@ -48,7 +48,6 @@ public class Base64Serialization { ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data)); BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream); Inventory inventory = Bukkit.getServer().createInventory(null, dataInput.readInt()); - // Read the serialized inventory for (int i = 0; i < inventory.getSize(); i++) { inventory.setItem(i, (ItemStack) dataInput.readObject()); diff --git a/src/main/java/com/drtshock/playervaults/vaultmanagement/VaultManager.java b/src/main/java/com/drtshock/playervaults/vaultmanagement/VaultManager.java index db5efd9..92dbf07 100644 --- a/src/main/java/com/drtshock/playervaults/vaultmanagement/VaultManager.java +++ b/src/main/java/com/drtshock/playervaults/vaultmanagement/VaultManager.java @@ -42,7 +42,8 @@ public class VaultManager { */ public void saveVault(Inventory inventory, UUID target, int number) { YamlConfiguration yaml = getPlayerVaultFile(target); - String serialized = Base64Serialization.toBase64(inventory); + int size = VaultOperations.getMaxVaultSize(target); + String serialized = Base64Serialization.toBase64(inventory, size); yaml.set(String.format(VAULTKEY, number), serialized); saveFileSync(target, yaml); }