From fcdf65dccb544a2440302cd8be58fc8978da97a8 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 6 Sep 2025 01:55:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=A8=E5=B1=80=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E8=A7=A3=E6=9E=90papi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/plugin/context/GlobalVariableManager.java | 2 +- .../core/plugin/context/NetworkTextReplaceContext.java | 3 ++- .../craftengine/core/plugin/context/PlayerContext.java | 8 ++++++++ .../core/plugin/context/PlayerOptionalContext.java | 3 ++- .../core/plugin/text/minimessage/PlaceholderTag.java | 3 ++- 5 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 core/src/main/java/net/momirealms/craftengine/core/plugin/context/PlayerContext.java diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/GlobalVariableManager.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/GlobalVariableManager.java index eb0b3ae25..bb2ab886d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/GlobalVariableManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/GlobalVariableManager.java @@ -55,7 +55,7 @@ public class GlobalVariableManager implements Manageable { @Override public void parseObject(Pack pack, Path path, net.momirealms.craftengine.core.util.Key id, Object object) throws LocalizedException { if (object != null) { - globalVariables.put(id.value(), object.toString()); + GlobalVariableManager.this.globalVariables.put(id.value(), object.toString()); } } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/NetworkTextReplaceContext.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/NetworkTextReplaceContext.java index 42f7c5984..1b80021c5 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/NetworkTextReplaceContext.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/NetworkTextReplaceContext.java @@ -7,7 +7,7 @@ import net.momirealms.craftengine.core.plugin.text.minimessage.*; import java.util.Map; -public final class NetworkTextReplaceContext extends AbstractChainParameterContext { +public final class NetworkTextReplaceContext extends AbstractChainParameterContext implements PlayerContext { private final Player player; public NetworkTextReplaceContext(Player player) { @@ -19,6 +19,7 @@ public final class NetworkTextReplaceContext extends AbstractChainParameterConte return new NetworkTextReplaceContext(player); } + @Override public Player player() { return player; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/PlayerContext.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/PlayerContext.java new file mode 100644 index 000000000..89bc0f1fc --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/PlayerContext.java @@ -0,0 +1,8 @@ +package net.momirealms.craftengine.core.plugin.context; + +import net.momirealms.craftengine.core.entity.player.Player; + +public interface PlayerContext { + + Player player(); +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/PlayerOptionalContext.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/PlayerOptionalContext.java index 72667d538..f2a39186c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/context/PlayerOptionalContext.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/context/PlayerOptionalContext.java @@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; -public class PlayerOptionalContext extends AbstractChainParameterContext implements Context { +public class PlayerOptionalContext extends AbstractChainParameterContext implements PlayerContext { public static final PlayerOptionalContext EMPTY = new PlayerOptionalContext(null, ContextHolder.EMPTY); protected final Player player; @@ -44,6 +44,7 @@ public class PlayerOptionalContext extends AbstractChainParameterContext impleme return new PlayerOptionalContext(player, new ContextHolder(Map.of(DirectContextParameters.PLAYER, () -> player))); } + @Override @Nullable public Player player() { return this.player; 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 019d915e6..066e3216a 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 @@ -6,6 +6,7 @@ import net.kyori.adventure.text.minimessage.tag.Tag; import net.kyori.adventure.text.minimessage.tag.resolver.ArgumentQueue; import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import net.momirealms.craftengine.core.plugin.CraftEngine; +import net.momirealms.craftengine.core.plugin.context.PlayerContext; import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext; import net.momirealms.craftengine.core.util.AdventureHelper; import org.jetbrains.annotations.NotNull; @@ -26,7 +27,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 PlayerOptionalContext playerOptionalContext ? CraftEngine.instance().compatibilityManager().parse(playerOptionalContext.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(); }