diff --git a/paper-api/src/main/java/org/bukkit/scoreboard/Objective.java b/paper-api/src/main/java/org/bukkit/scoreboard/Objective.java index d6d52bc918..d8a249bb2d 100644 --- a/paper-api/src/main/java/org/bukkit/scoreboard/Objective.java +++ b/paper-api/src/main/java/org/bukkit/scoreboard/Objective.java @@ -175,4 +175,24 @@ public interface Objective { */ @NotNull Score getScoreFor(@NotNull org.bukkit.entity.Entity entity) throws IllegalArgumentException, IllegalStateException; // Paper end - improve scoreboard entries + + // Paper start - add more score API + /** + * Gets if this objective will auto update score + * displays on changes. + * + * @return true if auto updating + * @throws IllegalStateException if this objective has been unregistered + */ + boolean willAutoUpdateDisplay(); + + /** + * Sets if this objective will auto update + * score displays on changes. + * + * @param autoUpdateDisplay true to auto update + * @throws IllegalStateException if this objective has been unregistered + */ + void setAutoUpdateDisplay(boolean autoUpdateDisplay); + // Paper end - add more score API } diff --git a/paper-api/src/main/java/org/bukkit/scoreboard/Score.java b/paper-api/src/main/java/org/bukkit/scoreboard/Score.java index 48a1654a2d..a3b482e07b 100644 --- a/paper-api/src/main/java/org/bukkit/scoreboard/Score.java +++ b/paper-api/src/main/java/org/bukkit/scoreboard/Score.java @@ -83,4 +83,50 @@ public interface Score { */ void resetScore() throws IllegalStateException; // Paper end + + // Paper start - add more score API + /** + * Gets if this score is triggerable and cannot + * be used by the {@code /trigger} command executed + * by the owner of this score. + * + * @return true if triggerable, false if not triggerable, score isn't set, or the objective isn't {@link Criteria#TRIGGER} + * @throws IllegalStateException if the associated objective has been unregistered + */ + boolean isTriggerable(); + + /** + * Sets if this score is triggerable and can + * be used by the {@code /trigger} command + * executed by the owner of this score. Can + * only be set on {@link Criteria#TRIGGER} objectives. + *

+ * If the score doesn't exist (aka {@link #isScoreSet()} returns false), + * this will create the score with a 0 value. + * + * @param triggerable true to enable trigger, false to disable + * @throws IllegalArgumentException if this objective isn't {@link Criteria#TRIGGER} + * @throws IllegalStateException if the associated objective has been unregistered + */ + void setTriggerable(boolean triggerable); + + /** + * Get the custom name for this entry. + * + * @return the custom name or null if not set (or score isn't set) + * @throws IllegalStateException if the associated objective has been unregistered + */ + @Nullable net.kyori.adventure.text.Component customName(); + + /** + * Sets the custom name for this entry. + *

+ * If the score doesn't exist (aka {@link #isScoreSet()} returns false), + * this will create the score with a 0 value. + * + * @param customName the custom name or null to reset + * @throws IllegalStateException if the associated objective has been unregistered + */ + void customName(net.kyori.adventure.text.@Nullable Component customName); + // Paper end - add more score API }