9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-19 15:09:15 +00:00

Merge pull request #427 from Catnies/fix-papi

修复当 PlayerOptionalContext 里不包含 Player参数时, 无法解析 <papi> tag;
This commit is contained in:
XiaoMoMi
2025-10-26 16:17:53 +08:00
committed by GitHub
2 changed files with 6 additions and 2 deletions

View File

@@ -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

View File

@@ -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)
? 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();
}