From bbd720a90da10ecd3c711755040d6a083daa9ace Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 24 Apr 2025 13:27:08 +0200 Subject: [PATCH] fn: Fix new skin not loading in npc-update-scheduler --- .../src/main/java/de/oliver/fancynpcs/FancyNpcs.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java b/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java index 089748ed..954cb6bb 100644 --- a/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java +++ b/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java @@ -28,6 +28,7 @@ import de.oliver.fancynpcs.api.Npc; import de.oliver.fancynpcs.api.NpcData; import de.oliver.fancynpcs.api.NpcManager; import de.oliver.fancynpcs.api.actions.types.*; +import de.oliver.fancynpcs.api.skins.SkinData; import de.oliver.fancynpcs.api.skins.SkinManager; import de.oliver.fancynpcs.commands.CloudCommandManager; import de.oliver.fancynpcs.listeners.*; @@ -296,15 +297,20 @@ public class FancyNpcs extends JavaPlugin implements FancyNpcsPlugin { npcThread.scheduleAtFixedRate(() -> { List npcs = new ArrayList<>(npcManager.getAllNpcs()); for (Npc npc : npcs) { + String skinID = npc.getData().getSkinData().getIdentifier(); boolean skinUpdated = npc.getData().getSkinData() != null && - !npc.getData().getSkinData().getIdentifier().isEmpty() && - SkinUtils.isPlaceholder(npc.getData().getSkinData().getIdentifier()); + !skinID.isEmpty() && + SkinUtils.isPlaceholder(skinID); boolean displayNameUpdated = npc.getData().getDisplayName() != null && !npc.getData().getDisplayName().isEmpty() && SkinUtils.isPlaceholder(npc.getData().getDisplayName()); if (skinUpdated || displayNameUpdated) { + SkinData skinData = skinManager.getByIdentifier(skinID, npc.getData().getSkinData().getVariant()); + skinData.setIdentifier(skinID); + npc.getData().setSkinData(skinData); + npc.removeForAll(); npc.create(); npc.spawnForAll();