From b1090815358580f5ee629fad107566c2d1c5f676 Mon Sep 17 00:00:00 2001 From: Catnies Date: Sun, 26 Oct 2025 10:23:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BD=93=20PlayerOptiona?= =?UTF-8?q?lContext=20=E9=87=8C=E4=B8=8D=E5=8C=85=E5=90=AB=20Player?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=97=B6,=20=E6=97=A0=E6=B3=95=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=20=20tag;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/compatibility/BukkitCompatibilityManager.java | 4 +++- .../core/plugin/text/minimessage/PlaceholderTag.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index f4f662bb1..e21594b35 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -339,7 +339,9 @@ public class BukkitCompatibilityManager implements CompatibilityManager { @Override public String parse(Player player, String text) { - return PlaceholderAPIUtils.parse((org.bukkit.entity.Player) player.platformPlayer(), text); + return player == null + ? PlaceholderAPIUtils.parse(null, text) + : PlaceholderAPIUtils.parse((org.bukkit.entity.Player) player.platformPlayer(), text); } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java index 51a74c794..e322709f7 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java @@ -26,7 +26,9 @@ public class PlaceholderTag implements TagResolver { String rawArgument = arguments.popOr("No argument relational placeholder provided").toString(); if (rawArgument.contains("<")) rawArgument = AdventureHelper.resolvePlainStringTags(rawArgument, this.context.tagResolvers()); String placeholder = "%" + rawArgument + "%"; - String parsed = this.context instanceof PlayerContext playerContext ? CraftEngine.instance().compatibilityManager().parse(playerContext.player(), placeholder) : CraftEngine.instance().compatibilityManager().parse(null, placeholder); + String parsed = (this.context instanceof PlayerContext playerContext) && playerContext.player() != null + ? CraftEngine.instance().compatibilityManager().parse(playerContext.player(), placeholder) + : CraftEngine.instance().compatibilityManager().parse(null, placeholder); if (parsed.equals(placeholder)) { parsed = arguments.popOr("No default papi value provided").toString(); } From f91ebafda9bc4b56e00f37ad25e9c2ba27e9c314 Mon Sep 17 00:00:00 2001 From: Catnies Date: Sun, 26 Oct 2025 16:05:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/plugin/text/minimessage/PlaceholderTag.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java index e322709f7..1304b753d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/text/minimessage/PlaceholderTag.java @@ -26,7 +26,7 @@ public class PlaceholderTag implements TagResolver { String rawArgument = arguments.popOr("No argument relational placeholder provided").toString(); if (rawArgument.contains("<")) rawArgument = AdventureHelper.resolvePlainStringTags(rawArgument, this.context.tagResolvers()); String placeholder = "%" + rawArgument + "%"; - String parsed = (this.context instanceof PlayerContext playerContext) && playerContext.player() != null + String parsed = (this.context instanceof PlayerContext playerContext) ? CraftEngine.instance().compatibilityManager().parse(playerContext.player(), placeholder) : CraftEngine.instance().compatibilityManager().parse(null, placeholder); if (parsed.equals(placeholder)) {