From 24272a72432850108e40c7ba1ea8c1ebbdaa344e Mon Sep 17 00:00:00 2001 From: D3v1s0m <49519439+D3v1s0m@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:29:01 +0530 Subject: [PATCH] Parse display name for ZNPCsPlus (#2163) --- .../pikamug/quests/util/BukkitConfigUtil.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/me/pikamug/quests/util/BukkitConfigUtil.java b/core/src/main/java/me/pikamug/quests/util/BukkitConfigUtil.java index 1cc61a5dc..a66a557e2 100644 --- a/core/src/main/java/me/pikamug/quests/util/BukkitConfigUtil.java +++ b/core/src/main/java/me/pikamug/quests/util/BukkitConfigUtil.java @@ -11,6 +11,9 @@ package me.pikamug.quests.util; import io.github.znetworkw.znpcservers.npc.NPC; +import lol.pyr.znpcsplus.api.entity.EntityProperty; +import lol.pyr.znpcsplus.api.npc.Npc; +import lol.pyr.znpcsplus.api.npc.NpcEntry; import me.pikamug.quests.dependencies.BukkitDependencies; import me.pikamug.quests.quests.Quest; import me.clip.placeholderapi.PlaceholderAPI; @@ -168,7 +171,8 @@ public class BukkitConfigUtil { if (parsed.contains("")) { if (BukkitDependencies.citizens != null) { parsed = parsed.replace("", BukkitDependencies.citizens.getNPCRegistry().getByUniqueId(npc).getName()); - } else if (BukkitDependencies.znpcsPlusLegacy != null) { + } + if (BukkitDependencies.znpcsPlusLegacy != null) { String name = "null"; final Optional opt = NPC.all().stream().filter(npc1 -> npc1.getUUID().equals(npc)).findAny(); if (opt.isPresent()) { @@ -181,7 +185,18 @@ public class BukkitConfigUtil { } parsed = parsed.replace("", name); } else if (BukkitDependencies.znpcsPlusApi != null) { - // TODO - Find some way to get NPC name + String name = "null"; + NpcEntry entry = BukkitDependencies.znpcsPlusApi.getNpcRegistry().getByUuid(npc); + if (entry != null) { + Npc znpc = entry.getNpc(); + EntityProperty displayNameProperty = BukkitDependencies.znpcsPlusApi.getPropertyRegistry().getByName("display_name", String.class); + if (displayNameProperty != null) { + if (znpc.hasProperty(displayNameProperty)) { + name = znpc.getProperty(displayNameProperty); + } + } + } + parsed = parsed.replace("", name); } } return parsed;