All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.scoreboard.Team Maven / Gradle / Ivy

package org.bukkit.scoreboard;

import org.bukkit.OfflinePlayer;
import org.bukkit.potion.PotionEffectType;

import java.util.Set;

/**
 * A team on a scoreboard that has a common display theme and other
 * properties. This team is only relevant to the display of the associated
 * {@link #getScoreboard() scoreboard}.
 */
public interface Team {

  /**
   * Gets the name of this Team
   *
   * @return Objective name
   * @throws IllegalStateException if this team has been unregistered
   */
  String getName() throws IllegalStateException;

  /**
   * Gets the name displayed to entries for this team
   *
   * @return Team display name
   * @throws IllegalStateException if this team has been unregistered
   */
  String getDisplayName() throws IllegalStateException;

  /**
   * Sets the name displayed to entries for this team
   *
   * @param displayName New display name
   * @throws IllegalArgumentException if displayName is longer than 32
   *                                  characters.
   * @throws IllegalStateException    if this team has been unregistered
   */
  void setDisplayName(String displayName) throws IllegalStateException, IllegalArgumentException;

  /**
   * Gets the prefix prepended to the display of entries on this team.
   *
   * @return Team prefix
   * @throws IllegalStateException if this team has been unregistered
   */
  String getPrefix() throws IllegalStateException;

  /**
   * Sets the prefix prepended to the display of entries on this team.
   *
   * @param prefix New prefix
   * @throws IllegalArgumentException if prefix is null
   * @throws IllegalArgumentException if prefix is longer than 16
   *                                  characters
   * @throws IllegalStateException    if this team has been unregistered
   */
  void setPrefix(String prefix) throws IllegalStateException, IllegalArgumentException;

  /**
   * Gets the suffix appended to the display of entries on this team.
   *
   * @return the team's current suffix
   * @throws IllegalStateException if this team has been unregistered
   */
  String getSuffix() throws IllegalStateException;

  /**
   * Sets the suffix appended to the display of entries on this team.
   *
   * @param suffix the new suffix for this team.
   * @throws IllegalArgumentException if suffix is null
   * @throws IllegalArgumentException if suffix is longer than 16
   *                                  characters
   * @throws IllegalStateException    if this team has been unregistered
   */
  void setSuffix(String suffix) throws IllegalStateException, IllegalArgumentException;

  /**
   * Gets the team friendly fire state
   *
   * @return true if friendly fire is enabled
   * @throws IllegalStateException if this team has been unregistered
   */
  boolean allowFriendlyFire() throws IllegalStateException;

  /**
   * Sets the team friendly fire state
   *
   * @param enabled true if friendly fire is to be allowed
   * @throws IllegalStateException if this team has been unregistered
   */
  void setAllowFriendlyFire(boolean enabled) throws IllegalStateException;

  /**
   * Gets the team's ability to see {@link PotionEffectType#INVISIBILITY
   * invisible} teammates.
   *
   * @return true if team members can see invisible members
   * @throws IllegalStateException if this team has been unregistered
   */
  boolean canSeeFriendlyInvisibles() throws IllegalStateException;

  /**
   * Sets the team's ability to see {@link PotionEffectType#INVISIBILITY
   * invisible} teammates.
   *
   * @param enabled true if invisible teammates are to be visible
   * @throws IllegalStateException if this team has been unregistered
   */
  void setCanSeeFriendlyInvisibles(boolean enabled) throws IllegalStateException;

  /**
   * Gets the team's ability to see name tags
   *
   * @return the current name tag visibilty for the team
   * @throws IllegalArgumentException if this team has been unregistered
   */
  NameTagVisibility getNameTagVisibility() throws IllegalArgumentException;

  /**
   * Set's the team's ability to see name tags
   *
   * @param visibility The nameTagVisibilty to set
   * @throws IllegalArgumentException if this team has been unregistered
   */
  void setNameTagVisibility(NameTagVisibility visibility) throws IllegalArgumentException;

  /**
   * Gets the Set of players on the team
   *
   * @return players on the team
   * @throws IllegalStateException if this team has been unregistered\
   * @see #getEntries()
   * @deprecated Teams can contain entries that aren't players
   */
  @Deprecated
  Set getPlayers() throws IllegalStateException;

  /**
   * Gets the Set of entries on the team
   *
   * @return entries on the team
   * @throws IllegalStateException if this entries has been unregistered\
   */
  Set getEntries() throws IllegalStateException;

  /**
   * Gets the size of the team
   *
   * @return number of entries on the team
   * @throws IllegalStateException if this team has been unregistered
   */
  int getSize() throws IllegalStateException;

  /**
   * Gets the Scoreboard to which this team is attached
   *
   * @return Owning scoreboard, or null if this team has been {@link
   * #unregister() unregistered}
   */
  Scoreboard getScoreboard();

  /**
   * This puts the specified player onto this team for the scoreboard.
   * 

* This will remove the player from any other team on the scoreboard. * * @param player the player to add * @throws IllegalArgumentException if player is null * @throws IllegalStateException if this team has been unregistered * @see #addEntry(String) * @deprecated Teams can contain entries that aren't players */ @Deprecated void addPlayer(OfflinePlayer player) throws IllegalStateException, IllegalArgumentException; /** * This puts the specified entry onto this team for the scoreboard. *

* This will remove the entry from any other team on the scoreboard. * * @param entry the entry to add * @throws IllegalArgumentException if entry is null * @throws IllegalStateException if this team has been unregistered */ void addEntry(String entry) throws IllegalStateException, IllegalArgumentException; /** * Removes the player from this team. * * @param player the player to remove * @return if the player was on this team * @throws IllegalArgumentException if player is null * @throws IllegalStateException if this team has been unregistered * @see #removeEntry(String) * @deprecated Teams can contain entries that aren't players */ @Deprecated boolean removePlayer(OfflinePlayer player) throws IllegalStateException, IllegalArgumentException; /** * Removes the entry from this team. * * @param entry the entry to remove * @return if the entry was a part of this team * @throws IllegalArgumentException if entry is null * @throws IllegalStateException if this team has been unregistered */ boolean removeEntry(String entry) throws IllegalStateException, IllegalArgumentException; /** * Unregisters this team from the Scoreboard * * @throws IllegalStateException if this team has been unregistered */ void unregister() throws IllegalStateException; /** * Checks to see if the specified player is a member of this team. * * @param player the player to search for * @return true if the player is a member of this team * @throws IllegalArgumentException if player is null * @throws IllegalStateException if this team has been unregistered * @see #hasEntry(String) * @deprecated Teams can contain entries that aren't players */ @Deprecated boolean hasPlayer(OfflinePlayer player) throws IllegalArgumentException, IllegalStateException; /** * Checks to see if the specified entry is a member of this team. * * @param entry the entry to search for * @return true if the entry is a member of this team * @throws IllegalArgumentException if entry is null * @throws IllegalStateException if this team has been unregistered */ boolean hasEntry(String entry) throws IllegalArgumentException, IllegalStateException; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy