aboutsummaryrefslogtreecommitdiff
path: root/spark-common/src/main
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2024-07-20 20:58:36 +0100
committerLuck <git@lucko.me>2024-07-20 20:58:36 +0100
commit635800af986351f08dba33aa2e8ec5dd691bbffb (patch)
treefe5512d62e0c45df64a11ac79347010534d90bc4 /spark-common/src/main
parentc0ffb19c40b2397d099b960aa0545dafd4b2525d (diff)
downloadspark-635800af986351f08dba33aa2e8ec5dd691bbffb.tar.gz
spark-635800af986351f08dba33aa2e8ec5dd691bbffb.tar.bz2
spark-635800af986351f08dba33aa2e8ec5dd691bbffb.zip
Add placeholder resolver API
Diffstat (limited to 'spark-common/src/main')
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/api/SparkApi.java17
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/util/SparkPlaceholder.java9
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);
+ }
}