From d48e4bc2b2185ec8d815433d0a1a6ba35863126a Mon Sep 17 00:00:00 2001 From: D3v1s0m Date: Sun, 17 Sep 2023 21:53:20 +0530 Subject: [PATCH] adding toggle imports from ZNpcs --- .../conversion/znpcs/ZNpcImporter.java | 20 +++++++++++++++++++ .../conversion/znpcs/model/ZNpcsModel.java | 5 +++++ 2 files changed, 25 insertions(+) diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/conversion/znpcs/ZNpcImporter.java b/plugin/src/main/java/lol/pyr/znpcsplus/conversion/znpcs/ZNpcImporter.java index 39ce7e7..09233b6 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/conversion/znpcs/ZNpcImporter.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/conversion/znpcs/ZNpcImporter.java @@ -28,13 +28,16 @@ import lol.pyr.znpcsplus.scheduling.TaskScheduler; import lol.pyr.znpcsplus.skin.Skin; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache; import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor; +import lol.pyr.znpcsplus.skin.descriptor.MirrorDescriptor; import lol.pyr.znpcsplus.skin.descriptor.PrefetchedDescriptor; import lol.pyr.znpcsplus.util.BungeeConnector; import lol.pyr.znpcsplus.util.ItemSerializationUtil; +import lol.pyr.znpcsplus.util.LookType; import lol.pyr.znpcsplus.util.NpcLocation; import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import org.bukkit.DyeColor; import org.bukkit.inventory.ItemStack; import java.io.BufferedReader; @@ -129,6 +132,23 @@ public class ZNpcImporter implements DataImporter { npc.setProperty(propertyRegistry.getByName("skin", SkinDescriptor.class), new PrefetchedDescriptor(new Skin(model.getSkin(), model.getSignature()))); } + Map toggleValues = model.getNpcToggleValues(); + if (toggleValues != null) { + if (toggleValues.containsKey("look")) { + npc.setProperty(propertyRegistry.getByName("look", LookType.class), LookType.CLOSEST_PLAYER); + } + if (toggleValues.containsKey("mirror")) { + npc.setProperty(propertyRegistry.getByName("skin", SkinDescriptor.class), new MirrorDescriptor(skinCache)); + } + if (toggleValues.containsKey("glow")) { + try { + npc.setProperty(propertyRegistry.getByName("glow", DyeColor.class), DyeColor.valueOf((String) toggleValues.get("glow"))); + } catch (IllegalArgumentException e) { + npc.setProperty(propertyRegistry.getByName("glow", DyeColor.class), DyeColor.WHITE); + } + } + } + NpcEntryImpl entry = new NpcEntryImpl(String.valueOf(model.getId()), npc); entry.enableEverything(); entries.add(entry); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/conversion/znpcs/model/ZNpcsModel.java b/plugin/src/main/java/lol/pyr/znpcsplus/conversion/znpcs/model/ZNpcsModel.java index 4502b23..60ec99b 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/conversion/znpcs/model/ZNpcsModel.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/conversion/znpcs/model/ZNpcsModel.java @@ -19,6 +19,7 @@ public class ZNpcsModel { private List hologramLines; private List clickActions; private Map npcEquip; + private Map npcToggleValues; private Map customizationMap; public int getId() { @@ -57,6 +58,10 @@ public class ZNpcsModel { return npcEquip; } + public Map getNpcToggleValues() { + return npcToggleValues; + } + public Map getCustomizationMap() { return customizationMap; }