Scoreboard objective number format api (#10036)
* feat: number format api Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: make each individual score customizable Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * docs: fix incorrect descriptions Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: use access transformers Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: use adventure codecs Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * test: test for matching styles Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: convert number formats to interfaces Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: add style conversion to adventure patch Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: use paper adventure method in PaperScoreboardFormat Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * chore: rename methods to avoid a method in records Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * fix: check if objective is still registered Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: improve style conversion Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: modify how the getter behaves in score Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: use fluent naming Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * docs: add spaces before the paper comments Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * chore: styling changes Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * chore: make constant final Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * feat: add methods for styled format instead of constants Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * fix: remove incorrect getTrackedPlayers check Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * docs: add . at the end of sentences Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * docs: explain null behaviour Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * docs: mention score creation Signed-off-by: David Mayr <davidliebtkekse@gmail.com> * rebase and fix javadoc comments * remove server implementation defaults * fix format for PaperScoreboardFormat --------- Signed-off-by: David Mayr <davidliebtkekse@gmail.com> Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
This commit is contained in:
parent
9a66f2b2e1
commit
1964b22439
4 changed files with 392 additions and 5 deletions
|
@ -1250,7 +1250,7 @@ new file mode 100644
|
|||
index 0000000000000000000000000000000000000000..2e757cd9b01ac7eba1e4723a6e21dcea9d062483
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java
|
||||
@@ -0,0 +1,401 @@
|
||||
@@ -0,0 +1,421 @@
|
||||
+package io.papermc.paper.adventure;
|
||||
+
|
||||
+import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
|
@ -1275,6 +1275,7 @@ index 0000000000000000000000000000000000000000..2e757cd9b01ac7eba1e4723a6e21dcea
|
|||
+import net.kyori.adventure.text.TranslatableComponent;
|
||||
+import net.kyori.adventure.text.TranslationArgument;
|
||||
+import net.kyori.adventure.text.flattener.ComponentFlattener;
|
||||
+import net.kyori.adventure.text.format.Style;
|
||||
+import net.kyori.adventure.text.format.TextColor;
|
||||
+import net.kyori.adventure.text.serializer.ComponentSerializer;
|
||||
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
|
@ -1285,6 +1286,7 @@ index 0000000000000000000000000000000000000000..2e757cd9b01ac7eba1e4723a6e21dcea
|
|||
+import net.kyori.adventure.translation.Translator;
|
||||
+import net.kyori.adventure.util.Codec;
|
||||
+import net.minecraft.ChatFormatting;
|
||||
+import net.minecraft.Util;
|
||||
+import net.minecraft.commands.CommandSourceStack;
|
||||
+import net.minecraft.core.Holder;
|
||||
+import net.minecraft.core.registries.BuiltInRegistries;
|
||||
|
@ -1651,6 +1653,24 @@ index 0000000000000000000000000000000000000000..2e757cd9b01ac7eba1e4723a6e21dcea
|
|||
+ public static @Nullable ChatFormatting asVanilla(final TextColor color) {
|
||||
+ return ChatFormatting.getByHexValue(color.value());
|
||||
+ }
|
||||
+
|
||||
+ // Style
|
||||
+
|
||||
+ public static net.minecraft.network.chat.Style asVanilla(Style style) {
|
||||
+ Object encoded = Util.getOrThrow(AdventureCodecs.STYLE_MAP_CODEC.codec()
|
||||
+ .encodeStart(net.minecraft.util.JavaOps.INSTANCE, style), IllegalStateException::new);
|
||||
+
|
||||
+ return Util.getOrThrow(net.minecraft.network.chat.Style.Serializer.CODEC
|
||||
+ .parse(net.minecraft.util.JavaOps.INSTANCE, encoded), IllegalStateException::new);
|
||||
+ }
|
||||
+
|
||||
+ public static Style asAdventure(net.minecraft.network.chat.Style style) {
|
||||
+ Object encoded = Util.getOrThrow(net.minecraft.network.chat.Style.Serializer.CODEC
|
||||
+ .encodeStart(net.minecraft.util.JavaOps.INSTANCE, style), IllegalStateException::new);
|
||||
+
|
||||
+ return Util.getOrThrow(AdventureCodecs.STYLE_MAP_CODEC.codec()
|
||||
+ .parse(net.minecraft.util.JavaOps.INSTANCE, encoded), IllegalStateException::new);
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/adventure/WrapperAwareSerializer.java b/src/main/java/io/papermc/paper/adventure/WrapperAwareSerializer.java
|
||||
new file mode 100644
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue