From abe9aad9fafb3536dc43483ac96846ddc6f34ad1 Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Mon, 29 Dec 2025 16:05:18 -0500 Subject: [PATCH] Refactor item to base64 serialization Use MIME type decoder here to be compatible with the old serialization result stored in entity's inventory PDC. --- .../java/me/athlaeos/valhallatrinkets/ItemSerializer.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/me/athlaeos/valhallatrinkets/ItemSerializer.java b/src/main/java/me/athlaeos/valhallatrinkets/ItemSerializer.java index 484fe3d..1ee71a2 100644 --- a/src/main/java/me/athlaeos/valhallatrinkets/ItemSerializer.java +++ b/src/main/java/me/athlaeos/valhallatrinkets/ItemSerializer.java @@ -3,11 +3,11 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.util.io.BukkitObjectInputStream; import org.bukkit.util.io.BukkitObjectOutputStream; -import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.util.Base64; public class ItemSerializer { public static String toBase64(ItemStack itemStack) throws IllegalStateException { @@ -20,7 +20,7 @@ public static String toBase64(ItemStack itemStack) throws IllegalStateException // Serialize that array dataOutput.close(); - return Base64Coder.encodeLines(outputStream.toByteArray()); + return Base64.getEncoder().encodeToString(outputStream.toByteArray()); } catch (Exception e) { ValhallaTrinkets.getPlugin().getServer().getLogger().severe("Unable to save itemstack from encoded data"); throw new IllegalStateException("Unable to save item stacks.", e); @@ -29,7 +29,7 @@ public static String toBase64(ItemStack itemStack) throws IllegalStateException public static ItemStack itemStackFromBase64(String data) { try { - ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data)); + ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64.getMimeDecoder().decode(data)); BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream); ItemStack i = (ItemStack) dataInput.readObject();