diff options
Diffstat (limited to 'patches/server/0970-add-more-scoreboard-API.patch')
-rw-r--r-- | patches/server/0970-add-more-scoreboard-API.patch | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/patches/server/0970-add-more-scoreboard-API.patch b/patches/server/0970-add-more-scoreboard-API.patch new file mode 100644 index 0000000000..3365b53a36 --- /dev/null +++ b/patches/server/0970-add-more-scoreboard-API.patch @@ -0,0 +1,79 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic <[email protected]> +Date: Sat, 16 Dec 2023 14:46:01 -0800 +Subject: [PATCH] add more scoreboard API + + +diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java +index b36e5574c10e6d70a399e2ac0704fd4f43dbb444..2d3abf2a1da487ead74d698cc5ea4eb729c35c8d 100644 +--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java ++++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftObjective.java +@@ -185,6 +185,19 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective + final CraftObjective other = (CraftObjective) obj; + return !(this.objective != other.objective && (this.objective == null || !this.objective.equals(other.objective))); + } ++ // Paper start - add more score API ++ @Override ++ public boolean willAutoUpdateDisplay() { ++ this.checkState(); ++ return this.objective.displayAutoUpdate(); ++ } ++ ++ @Override ++ public void setAutoUpdateDisplay(final boolean autoUpdateDisplay) { ++ this.checkState(); ++ this.objective.setDisplayAutoUpdate(autoUpdateDisplay); ++ } ++ // Paper end - add more score API + + + } +diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java +index ceb1a39c02c3cfa7632a0fdca414c7046888fcb1..74d9c407e971804bed420370f7b684d8658eb5aa 100644 +--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java ++++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScore.java +@@ -74,4 +74,44 @@ final class CraftScore implements Score { + board.resetSinglePlayerScore(entry, this.objective.getHandle()); + } + // Paper end ++ ++ // Paper start - add more score API ++ @Override ++ public boolean isTriggerable() { ++ if (this.objective.getTrackedCriteria() != org.bukkit.scoreboard.Criteria.TRIGGER) { ++ return false; ++ } ++ final Scoreboard board = this.objective.checkState().board; ++ final ReadOnlyScoreInfo scoreInfo = board.getPlayerScoreInfo(this.entry, this.objective.getHandle()); ++ return scoreInfo != null && !scoreInfo.isLocked(); ++ } ++ ++ @Override ++ public void setTriggerable(final boolean triggerable) { ++ com.google.common.base.Preconditions.checkArgument(this.objective.getTrackedCriteria() == org.bukkit.scoreboard.Criteria.TRIGGER, "the criteria isn't 'trigger'"); ++ final Scoreboard board = this.objective.checkState().board; ++ if (triggerable) { ++ board.getOrCreatePlayerScore(this.entry, this.objective.getHandle()).unlock(); ++ } else { ++ board.getOrCreatePlayerScore(this.entry, this.objective.getHandle()).lock(); ++ } ++ } ++ ++ @Override ++ public net.kyori.adventure.text.Component customName() { ++ final Scoreboard board = this.objective.checkState().board; ++ final ReadOnlyScoreInfo scoreInfo = board.getPlayerScoreInfo(this.entry, this.objective.getHandle()); ++ if (scoreInfo == null) { ++ return null; // If score doesn't exist, don't create one ++ } ++ final net.minecraft.network.chat.Component display = board.getOrCreatePlayerScore(this.entry, this.objective.getHandle()).display(); ++ return display == null ? null : io.papermc.paper.adventure.PaperAdventure.asAdventure(display); ++ } ++ ++ @Override ++ public void customName(final net.kyori.adventure.text.Component customName) { ++ final Scoreboard board = this.objective.checkState().board; ++ board.getOrCreatePlayerScore(this.entry, this.objective.getHandle()).display(io.papermc.paper.adventure.PaperAdventure.asVanilla(customName)); ++ } ++ // Paper end - add more score API + } |