Paper/patches/api/0445-add-number-format-api.patch

235 lines
8.9 KiB
Diff
Raw Permalink Normal View History

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>
2024-02-17 21:22:00 +01:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: David Mayr <davidliebtkekse@gmail.com>
Date: Sat, 16 Dec 2023 10:40:29 +0100
Subject: [PATCH] add number format api
Signed-off-by: David Mayr <davidliebtkekse@gmail.com>
diff --git a/src/main/java/io/papermc/paper/scoreboard/numbers/BlankFormatImpl.java b/src/main/java/io/papermc/paper/scoreboard/numbers/BlankFormatImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..486da6ebe0137bb3280e8b33c8e35e309507f118
--- /dev/null
+++ b/src/main/java/io/papermc/paper/scoreboard/numbers/BlankFormatImpl.java
@@ -0,0 +1,5 @@
+package io.papermc.paper.scoreboard.numbers;
+
+record BlankFormatImpl() implements NumberFormat {
+ public static final BlankFormatImpl INSTANCE = new BlankFormatImpl();
+}
diff --git a/src/main/java/io/papermc/paper/scoreboard/numbers/FixedFormat.java b/src/main/java/io/papermc/paper/scoreboard/numbers/FixedFormat.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ef4595b692a13566c5c738050b83b0462094e9b
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>
2024-02-17 21:22:00 +01:00
--- /dev/null
+++ b/src/main/java/io/papermc/paper/scoreboard/numbers/FixedFormat.java
@@ -0,0 +1,20 @@
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>
2024-02-17 21:22:00 +01:00
+package io.papermc.paper.scoreboard.numbers;
+
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.ComponentLike;
+import org.jspecify.annotations.NullMarked;
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>
2024-02-17 21:22:00 +01:00
+
+/**
+ * A scoreboard number format that replaces the score number with a chat component.
+ */
+@NullMarked
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>
2024-02-17 21:22:00 +01:00
+public interface FixedFormat extends NumberFormat, ComponentLike {
+
+ /**
+ * The component shown instead of the number for a score
+ *
+ * @return the chat component
+ */
+ Component component();
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>
2024-02-17 21:22:00 +01:00
+
+}
diff --git a/src/main/java/io/papermc/paper/scoreboard/numbers/FixedFormatImpl.java b/src/main/java/io/papermc/paper/scoreboard/numbers/FixedFormatImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..be47bf438805f9ab84b241e564281ea9c287aa6e
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>
2024-02-17 21:22:00 +01:00
--- /dev/null
+++ b/src/main/java/io/papermc/paper/scoreboard/numbers/FixedFormatImpl.java
@@ -0,0 +1,13 @@
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>
2024-02-17 21:22:00 +01:00
+package io.papermc.paper.scoreboard.numbers;
+
+import net.kyori.adventure.text.Component;
+import org.jspecify.annotations.NullMarked;
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>
2024-02-17 21:22:00 +01:00
+
+@NullMarked
+record FixedFormatImpl(Component component) implements FixedFormat {
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>
2024-02-17 21:22:00 +01:00
+
+ @Override
+ public Component asComponent() {
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>
2024-02-17 21:22:00 +01:00
+ return this.component();
+ }
+}
diff --git a/src/main/java/io/papermc/paper/scoreboard/numbers/NumberFormat.java b/src/main/java/io/papermc/paper/scoreboard/numbers/NumberFormat.java
new file mode 100644
index 0000000000000000000000000000000000000000..7c093e4e9a2a67021da9025631a3c6fa7ac3ef35
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>
2024-02-17 21:22:00 +01:00
--- /dev/null
+++ b/src/main/java/io/papermc/paper/scoreboard/numbers/NumberFormat.java
@@ -0,0 +1,61 @@
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>
2024-02-17 21:22:00 +01:00
+package io.papermc.paper.scoreboard.numbers;
+
+import net.kyori.adventure.text.ComponentLike;
+import net.kyori.adventure.text.format.Style;
+import net.kyori.adventure.text.format.StyleBuilderApplicable;
+import org.jspecify.annotations.NullMarked;
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>
2024-02-17 21:22:00 +01:00
+
+/**
+ * Describes a scoreboard number format that applies custom formatting to scoreboard scores.
+ */
+@NullMarked
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>
2024-02-17 21:22:00 +01:00
+public interface NumberFormat {
+
+ /**
+ * Creates a blank scoreboard number format that removes the score number entirely.
+ *
+ * @return a blank number format
+ */
+ static NumberFormat blank() {
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>
2024-02-17 21:22:00 +01:00
+ return BlankFormatImpl.INSTANCE;
+ }
+
+ /**
+ * Gets an un-styled number format.
+ *
+ * @return an un-styled number format
+ */
+ static StyledFormat noStyle() {
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>
2024-02-17 21:22:00 +01:00
+ return StyledFormatImpl.NO_STYLE;
+ }
+
+ /**
+ * Creates a scoreboard number format that applies a custom formatting to the score number.
+ *
+ * @param style the style to apply on the number
+ * @return a styled number format
+ */
+ static StyledFormat styled(final Style style) {
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>
2024-02-17 21:22:00 +01:00
+ return new StyledFormatImpl(style);
+ }
+
+ /**
+ * Creates a scoreboard number format that applies a custom formatting to the score number.
+ *
+ * @param styleBuilderApplicables the style to apply on the number
+ * @return a styled number format
+ */
+ static StyledFormat styled(final StyleBuilderApplicable... styleBuilderApplicables) {
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>
2024-02-17 21:22:00 +01:00
+ return styled(Style.style(styleBuilderApplicables));
+ }
+
+ /**
+ * Creates a scoreboard number format that replaces the score number with a chat component.
+ *
+ * @param component the component to replace the number with
+ * @return a fixed number format
+ */
+ static FixedFormat fixed(final ComponentLike component) {
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>
2024-02-17 21:22:00 +01:00
+ return new FixedFormatImpl(component.asComponent());
+ }
+}
diff --git a/src/main/java/io/papermc/paper/scoreboard/numbers/StyledFormat.java b/src/main/java/io/papermc/paper/scoreboard/numbers/StyledFormat.java
new file mode 100644
index 0000000000000000000000000000000000000000..cfb14bb1b338727a5d9eeaa7a73c40540b04dbed
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>
2024-02-17 21:22:00 +01:00
--- /dev/null
+++ b/src/main/java/io/papermc/paper/scoreboard/numbers/StyledFormat.java
@@ -0,0 +1,20 @@
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>
2024-02-17 21:22:00 +01:00
+package io.papermc.paper.scoreboard.numbers;
+
+import net.kyori.adventure.text.format.Style;
+import net.kyori.adventure.text.format.StyleBuilderApplicable;
+import org.jspecify.annotations.NullMarked;
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>
2024-02-17 21:22:00 +01:00
+
+/**
+ * A scoreboard number format that applies a custom formatting to the score number.
+ */
+@NullMarked
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>
2024-02-17 21:22:00 +01:00
+public interface StyledFormat extends NumberFormat, StyleBuilderApplicable {
+
+ /**
+ * The style that is being applied to the number in the score
+ *
+ * @return the style to apply
+ */
+ Style style();
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>
2024-02-17 21:22:00 +01:00
+
+}
diff --git a/src/main/java/io/papermc/paper/scoreboard/numbers/StyledFormatImpl.java b/src/main/java/io/papermc/paper/scoreboard/numbers/StyledFormatImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..e288beb1596f2d4e7e602364955da4e8bc0de21c
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>
2024-02-17 21:22:00 +01:00
--- /dev/null
+++ b/src/main/java/io/papermc/paper/scoreboard/numbers/StyledFormatImpl.java
@@ -0,0 +1,14 @@
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>
2024-02-17 21:22:00 +01:00
+package io.papermc.paper.scoreboard.numbers;
+
+import net.kyori.adventure.text.format.Style;
+import org.jspecify.annotations.NullMarked;
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>
2024-02-17 21:22:00 +01:00
+
+@NullMarked
+record StyledFormatImpl(Style style) implements StyledFormat {
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>
2024-02-17 21:22:00 +01:00
+ static final StyledFormat NO_STYLE = new StyledFormatImpl(Style.empty());
+
+ @Override
+ public void styleApply(final Style.Builder style) {
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>
2024-02-17 21:22:00 +01:00
+ style.merge(this.style);
+ }
+}
diff --git a/src/main/java/org/bukkit/scoreboard/Objective.java b/src/main/java/org/bukkit/scoreboard/Objective.java
index bd4d84cbf220ab02f09ece97873bbf0bdf7a45ba..1750f97d2122e6e597b9549df8f6fa74bf5e2e2d 100644
--- a/src/main/java/org/bukkit/scoreboard/Objective.java
+++ b/src/main/java/org/bukkit/scoreboard/Objective.java
@@ -195,4 +195,22 @@ public interface Objective {
*/
void setAutoUpdateDisplay(boolean autoUpdateDisplay);
// Paper end - add more score API
+
+ // Paper start - number format api
+ /**
+ * Gets the number format for this objective's scores or null if the client default is used.
+ *
+ * @return this objective's number format, or null if the client default is used
+ * @throws IllegalStateException if this objective has been unregistered
+ */
+ @Nullable io.papermc.paper.scoreboard.numbers.NumberFormat numberFormat();
+
+ /**
+ * Sets the number format for this objective's scores.
+ *
+ * @param format the number format to set, pass null to reset format to default
+ * @throws IllegalStateException if this objective has been unregistered
+ */
+ void numberFormat(@Nullable io.papermc.paper.scoreboard.numbers.NumberFormat format);
+ // Paper end - number format api
}
diff --git a/src/main/java/org/bukkit/scoreboard/Score.java b/src/main/java/org/bukkit/scoreboard/Score.java
index 5b6f243492d55d2db0d6944dc6daca9b181551d6..fba8e475c1f1a410c44a95fcc474cce19e0f515c 100644
--- a/src/main/java/org/bukkit/scoreboard/Score.java
+++ b/src/main/java/org/bukkit/scoreboard/Score.java
@@ -129,4 +129,26 @@ public interface Score {
*/
void customName(net.kyori.adventure.text.@Nullable Component customName);
// Paper end - add more score API
+
+ // Paper start - number format api
+ /**
+ * Gets the number format for this score or null if the score has not been set yet
+ * or the objective's default is being used.
+ *
+ * @return this score's number format, or null if the objective's default is used or the score doesn't exist
+ * @throws IllegalStateException if the associated objective has been
+ * unregistered
+ */
+ @Nullable io.papermc.paper.scoreboard.numbers.NumberFormat numberFormat();
+
+ /**
+ * Sets the number format for this score. If this score has not been set yet {@link #isScoreSet()}, it will be created
+ *
+ * @param format the number format to set, pass null to reset format to default
+ * @throws IllegalStateException if the associated objective has been
+ * unregistered
+ */
+ void numberFormat(@Nullable io.papermc.paper.scoreboard.numbers.NumberFormat format);
+ // Paper end - number format api
+
}