From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic <jake.m.potrebic@gmail.com> Date: Sat, 16 Dec 2023 14:45:46 -0800 Subject: [PATCH] Add more scoreboard API diff --git a/src/main/java/org/bukkit/scoreboard/Objective.java b/src/main/java/org/bukkit/scoreboard/Objective.java index a193ffabb05160b462dee1ba8f687fdbc84405b6..bd4d84cbf220ab02f09ece97873bbf0bdf7a45ba 100644 --- a/src/main/java/org/bukkit/scoreboard/Objective.java +++ b/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/src/main/java/org/bukkit/scoreboard/Score.java b/src/main/java/org/bukkit/scoreboard/Score.java index 1eaa9a93f8eff5f18a6cce2d74f21eb19db273c8..5b6f243492d55d2db0d6944dc6daca9b181551d6 100644 --- a/src/main/java/org/bukkit/scoreboard/Score.java +++ b/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. + * <p> + * 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. + * <p> + * 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 }