From 635800af986351f08dba33aa2e8ec5dd691bbffb Mon Sep 17 00:00:00 2001 From: Luck Date: Sat, 20 Jul 2024 20:58:36 +0100 Subject: Add placeholder resolver API --- .../main/java/me/lucko/spark/common/api/SparkApi.java | 17 +++++++++++++++++ .../me/lucko/spark/common/util/SparkPlaceholder.java | 9 +++++++++ 2 files changed, 26 insertions(+) (limited to 'spark-common/src') 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); + } } -- cgit