001 package org.bukkit.scoreboard; 002 003 import org.bukkit.OfflinePlayer; 004 005 /** 006 * A score entry for an {@link #getEntry() entry} on an {@link 007 * #getObjective() objective}. Changing this will not affect any other 008 * objective or scoreboard. 009 */ 010 public interface Score { 011 012 /** 013 * Gets the OfflinePlayer being tracked by this Score 014 * 015 * @return this Score's tracked player 016 * @deprecated Scoreboards can contain entries that aren't players 017 * @see #getEntry() 018 */ 019 @Deprecated 020 OfflinePlayer getPlayer(); 021 022 /** 023 * Gets the entry being tracked by this Score 024 * 025 * @return this Score's tracked entry 026 */ 027 String getEntry(); 028 029 /** 030 * Gets the Objective being tracked by this Score 031 * 032 * @return this Score's tracked objective 033 */ 034 Objective getObjective(); 035 036 /** 037 * Gets the current score 038 * 039 * @return the current score 040 * @throws IllegalStateException if the associated objective has been 041 * unregistered 042 */ 043 int getScore() throws IllegalStateException; 044 045 /** 046 * Sets the current score. 047 * 048 * @param score New score 049 * @throws IllegalStateException if the associated objective has been 050 * unregistered 051 */ 052 void setScore(int score) throws IllegalStateException; 053 054 /** 055 * Gets the scoreboard for the associated objective. 056 * 057 * @return the owning objective's scoreboard, or null if it has been 058 * {@link Objective#unregister() unregistered} 059 */ 060 Scoreboard getScoreboard(); 061 }