From 13a47fa743b26018275f5f9dde6f8e1a2a3c7f3c Mon Sep 17 00:00:00 2001 From: Pyrbu <pyrmcserver@gmail.com> Date: Sat, 20 Jul 2024 23:34:13 +0200 Subject: [PATCH] fix fetching descriptor deserialization when name contains ";" --- .../main/java/lol/pyr/znpcsplus/skin/BaseSkinDescriptor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/skin/BaseSkinDescriptor.java b/plugin/src/main/java/lol/pyr/znpcsplus/skin/BaseSkinDescriptor.java index 3c63364..65e6e7d 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/skin/BaseSkinDescriptor.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/skin/BaseSkinDescriptor.java @@ -9,6 +9,7 @@ import lol.pyr.znpcsplus.skin.descriptor.PrefetchedDescriptor; import org.bukkit.entity.Player; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -21,7 +22,7 @@ public interface BaseSkinDescriptor extends SkinDescriptor { static BaseSkinDescriptor deserialize(MojangSkinCache skinCache, String str) { String[] arr = str.split(";"); if (arr[0].equalsIgnoreCase("mirror")) return new MirrorDescriptor(skinCache); - else if (arr[0].equalsIgnoreCase("fetching")) return new FetchingDescriptor(skinCache, arr[1]); + else if (arr[0].equalsIgnoreCase("fetching")) return new FetchingDescriptor(skinCache, String.join(";", Arrays.copyOfRange(arr, 1, arr.length))); else if (arr[0].equalsIgnoreCase("prefetched")) { List<TextureProperty> properties = new ArrayList<>(); for (int i = 0; i < (arr.length - 1) / 3; i++) {