From 7179c6109e8c373cd823ecc4b3c609de02b53b8e Mon Sep 17 00:00:00 2001 From: Renokas1 <83085629+Renokas1@users.noreply.github.com> Date: Tue, 23 Sep 2025 18:08:14 +0300 Subject: [PATCH] fancyholograms v3: Fix ItemHologramData JSON serialization using Base64 to prevent corrupted item data (#114) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed broken item hologram saving before is used to save with illegal characters: "\u001f�\b\u0000\u0000\u0000\u0000\u0000\u0000�\u0005��\t�0\f\u0005ЯE\u0010����xv\u0006oRBS1�&���}o\u0001\u0012֓���]L��1\nco��8=q�P3�����ɛy�T��\u00000�\u0007�^��F\u0000\u0000\u0000" now works as intended: "H4sIAAAAAAAA/0WOMQ7CMBAEF6wgMA0FHeIjlIg30CHL2Bdiyfah86XgFzyG/wGpMvXMai1gsL149VeSlrgCu9sayxRxLKlSEN/rKZPXgcQNLI2cl8Ji0AUeqwJYWNjA5cmVqjaL/RzGF0UXOE++kccd3/SBxWE2wtiUiyscKbv4/7HBqs/stXXT9PmNiR+zY1CZpwAAAA==" * Forgot to remove my comment code must look clean!! --- .../fancyholograms/storage/json/JsonAdapter.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/fancyholograms/src/main/java/com/fancyinnovations/fancyholograms/storage/json/JsonAdapter.java b/plugins/fancyholograms/src/main/java/com/fancyinnovations/fancyholograms/storage/json/JsonAdapter.java index 47e07235..06b11474 100644 --- a/plugins/fancyholograms/src/main/java/com/fancyinnovations/fancyholograms/storage/json/JsonAdapter.java +++ b/plugins/fancyholograms/src/main/java/com/fancyinnovations/fancyholograms/storage/json/JsonAdapter.java @@ -13,6 +13,8 @@ import org.bukkit.entity.Display; import org.bukkit.inventory.ItemStack; import org.joml.Vector3f; +import java.util.Base64; + public class JsonAdapter { public static JsonHologramData hologramDataToJson(com.fancyinnovations.fancyholograms.api.data.HologramData data) { @@ -78,7 +80,7 @@ public class JsonAdapter { public static JsonItemHologramData itemHologramDataToJson(com.fancyinnovations.fancyholograms.api.data.ItemHologramData data) { return new JsonItemHologramData( - new String(data.getItemStack().serializeAsBytes()) + Base64.getEncoder().encodeToString(data.getItemStack().serializeAsBytes()) ); } @@ -178,7 +180,7 @@ public class JsonAdapter { case ITEM -> new com.fancyinnovations.fancyholograms.api.data.ItemHologramData(data.hologram_data().name(), loc) - .setItemStack(ItemStack.deserializeBytes(data.item_data().item().getBytes())) // item data + .setItemStack(ItemStack.deserializeBytes(Base64.getDecoder().decode(data.item_data().item()))) // item data .setBillboard(data.display_data().billboard()) // display data .setScale(scale) .setTranslation(translation)