package net.glowstone.scoreboard; import net.glowstone.net.message.play.scoreboard.ScoreboardScoreMessage; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Score; import org.bukkit.scoreboard.Scoreboard; /** * Implementation/data holder for Scores. */ public final class GlowScore implements Score { private final GlowObjective objective; private final String entry; private int score; private boolean locked; public GlowScore(GlowObjective objective, String entry) { this.objective = objective; this.entry = entry; } public Objective getObjective() { return objective; } public Scoreboard getScoreboard() { return objective.getScoreboard(); } public String getEntry() { return entry; } @Deprecated public OfflinePlayer getPlayer() { return Bukkit.getOfflinePlayer(entry); } public int getScore() throws IllegalStateException { objective.checkValid(); return score; } public void setScore(int score) throws IllegalStateException { objective.checkValid(); this.score = score; objective.getScoreboard().broadcast(new ScoreboardScoreMessage(entry, objective.getName(), score)); } @Override public boolean isScoreSet() throws IllegalStateException { objective.checkValid(); return objective.getScoreboard().getScores(entry).contains(score); } public void setLocked(boolean locked) { this.locked = locked; } public boolean getLocked() { return locked; } }