diff options
author | Luck <git@lucko.me> | 2024-07-20 20:58:36 +0100 |
---|---|---|
committer | Luck <git@lucko.me> | 2024-07-20 20:58:36 +0100 |
commit | 635800af986351f08dba33aa2e8ec5dd691bbffb (patch) | |
tree | fe5512d62e0c45df64a11ac79347010534d90bc4 /spark-common | |
parent | c0ffb19c40b2397d099b960aa0545dafd4b2525d (diff) | |
download | spark-635800af986351f08dba33aa2e8ec5dd691bbffb.tar.gz spark-635800af986351f08dba33aa2e8ec5dd691bbffb.tar.bz2 spark-635800af986351f08dba33aa2e8ec5dd691bbffb.zip |
Add placeholder resolver API
Diffstat (limited to 'spark-common')
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java | 17 | ||||
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java | 9 |
2 files changed, 26 insertions, 0 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java b/spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java index 16cb259..81b4f70 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java +++ b/spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java @@ -24,6 +24,7 @@ import com.google.common.collect.ImmutableMap; import me.lucko.spark.api.Spark; import me.lucko.spark.api.SparkProvider; import me.lucko.spark.api.gc.GarbageCollector; +import me.lucko.spark.api.placeholder.PlaceholderResolver; import me.lucko.spark.api.statistic.misc.DoubleAverageInfo; import me.lucko.spark.api.statistic.types.DoubleStatistic; import me.lucko.spark.api.statistic.types.GenericStatistic; @@ -31,6 +32,7 @@ import me.lucko.spark.common.SparkPlatform; import me.lucko.spark.common.monitor.cpu.CpuMonitor; import me.lucko.spark.common.monitor.memory.GarbageCollectorStatistics; import me.lucko.spark.common.monitor.tick.TickStatistics; +import me.lucko.spark.common.util.SparkPlaceholder; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -172,6 +174,21 @@ public class SparkApi implements Spark { return ImmutableMap.copyOf(map); } + @Override + public @NonNull PlaceholderResolver placeholders() { + return new PlaceholderResolver() { + @Override + public @Nullable String resolveLegacyFormatting(@NonNull String placeholder) { + return SparkPlaceholder.resolveFormattingCode(SparkApi.this.platform, placeholder); + } + + @Override + public @Nullable String resolveComponentJson(@NonNull String placeholder) { + return SparkPlaceholder.resolveComponentJson(SparkApi.this.platform, placeholder); + } + }; + } + public static void register(Spark spark) { try { SINGLETON_SET_METHOD.invoke(null, spark); diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java b/spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java index 948d404..b4acc7b 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java +++ b/spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java @@ -25,6 +25,7 @@ import me.lucko.spark.common.monitor.cpu.CpuMonitor; import me.lucko.spark.common.monitor.tick.TickStatistics; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import java.util.Locale; @@ -186,5 +187,13 @@ public enum SparkPlaceholder { } return LegacyComponentSerializer.legacySection().serialize(result); } + + public static String resolveComponentJson(SparkPlatform platform, String placeholder) { + TextComponent result = resolveComponent(platform, placeholder); + if (result == null) { + return null; + } + return GsonComponentSerializer.gson().serialize(result); + } } |