From 9904b02d16dcb16e1a0aacdd6abbf3c0474d28fa Mon Sep 17 00:00:00 2001 From: CuteeCactus Date: Mon, 23 Mar 2026 15:14:54 +0500 Subject: [PATCH 1/2] multi placeholder parsing --- .../displaytags/nametags/Nametag.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/itsskeptical/displaytags/nametags/Nametag.java b/src/main/java/me/itsskeptical/displaytags/nametags/Nametag.java index 450a07a..a631c21 100644 --- a/src/main/java/me/itsskeptical/displaytags/nametags/Nametag.java +++ b/src/main/java/me/itsskeptical/displaytags/nametags/Nametag.java @@ -136,12 +136,30 @@ private Component getText() { // This line used to replace the {player} variable, but player name is really static text so has been moved to the class constructor. .replace("{health}", String.valueOf(new DecimalFormat("#.##").format(player.getHealth()))); if (DependencyHelper.isPlaceholderAPIEnabled()) { - modified = PlaceholderAPI.setPlaceholders(player, modified); + modified = parsePlaceholders(player, modified); } components.add(ComponentUtils.format(modified)); } return ComponentUtils.join(components); } + + private String parsePlaceholders(Player player, String text) { + String previous; + String current = text; + + int maxIterations = 5; // don't go higher unless you want problems + + for (int i = 0; i < maxIterations; i++) { + previous = current; + current = PlaceholderAPI.setPlaceholders(player, current); + + if (current.equals(previous)) { + break; // no more changes + } + } + + return current; +} private int getBackground() { String background = plugin.config().getNametagConfig().getBackground(); From c60abf20550ae50fad3747ce4ee422a5659e5ef4 Mon Sep 17 00:00:00 2001 From: cuteecactus <145924560+cuteecactus@users.noreply.github.com> Date: Mon, 23 Mar 2026 15:17:33 +0500 Subject: [PATCH 2/2] multi placeholder parsing --- .../java/me/itsskeptical/displaytags/nametags/Nametag.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/itsskeptical/displaytags/nametags/Nametag.java b/src/main/java/me/itsskeptical/displaytags/nametags/Nametag.java index a631c21..ad8c90f 100644 --- a/src/main/java/me/itsskeptical/displaytags/nametags/Nametag.java +++ b/src/main/java/me/itsskeptical/displaytags/nametags/Nametag.java @@ -147,14 +147,14 @@ private String parsePlaceholders(Player player, String text) { String previous; String current = text; - int maxIterations = 5; // don't go higher unless you want problems + int maxIterations = 5; for (int i = 0; i < maxIterations; i++) { previous = current; current = PlaceholderAPI.setPlaceholders(player, current); if (current.equals(previous)) { - break; // no more changes + break; } }