Interface TeamService

All Known Implementing Classes:
BukkitEventFiringTeamServiceImpl, TeamServiceImpl

public interface TeamService
Façade pour toutes les opérations sur les équipes : lifecycle (create / dissolve), membres, scores, classements, point de spawn, visibilité.

Toute logique d'écriture passe par le service (jamais directement sur Team) — il garantit l'unicité nom/tag, déclenche les hooks d'override et tire les évènements Bukkit (via la sous-classe par défaut BukkitEventFiringTeamServiceImpl).

L'implémentation par défaut est

invalid reference
TeamServiceImpl
avec ses ~12 hooks protected surchargeables (factories newTeam, newRanking, et hooks on... autour de chaque opération).
  • Method Details

    • createTeam

      Team createTeam(String name, String tag, TeamColor color)
      Crée une équipe sans chef, visibilité PRIVATE.
    • createTeam

      Team createTeam(String name, String tag, TeamColor color, TeamVisibility visibility)
      Crée une équipe sans chef avec la visibilité spécifiée.
    • createTeam

      Team createTeam(String name, String tag, TeamColor color, UUID leaderId)
      Crée une équipe avec chef, visibilité PRIVATE.
    • createTeam

      Team createTeam(String name, String tag, TeamColor color, UUID leaderId, TeamVisibility visibility)
      Crée une équipe. leaderId peut être null (équipe leaderless — l'admin assignera plus tard via setLeader(UUID, UUID)).
    • dissolveTeam

      boolean dissolveTeam(UUID teamId)
    • addMember

      boolean addMember(UUID teamId, UUID playerId)
    • removeMember

      boolean removeMember(UUID teamId, UUID playerId)
    • joinTeam

      boolean joinTeam(UUID teamId, UUID playerId)
    • transferLeadership

      boolean transferLeadership(UUID teamId, UUID newLeaderId)
    • setLeader

      boolean setLeader(UUID teamId, UUID newLeaderId)
      Assigne un chef à l'équipe (admin). Plus permissif que transferLeadership(UUID, UUID) : accepte un nouveau chef qui n'est pas encore membre (il est auto-ajouté), et fonctionne aussi sur une équipe leaderless.
      Returns:
      true si le chef a changé, false si newLeaderId était déjà le chef actuel.
    • setVisibility

      void setVisibility(UUID teamId, TeamVisibility visibility)
    • addScore

      int addScore(UUID teamId, String scoreName, int delta)
    • setScore

      int setScore(UUID teamId, String scoreName, int value)
    • getScore

      int getScore(UUID teamId, String scoreName)
    • resetScore

      boolean resetScore(UUID teamId, String scoreName)
    • resetAllScores

      void resetAllScores(UUID teamId)
    • getRankingByScore

      List<TeamRanking> getRankingByScore(String scoreName)
    • getGlobalRanking

      List<TeamRanking> getGlobalRanking()
    • getTopRankingByScore

      default List<TeamRanking> getTopRankingByScore(String scoreName, int limit)
    • getTopGlobalRanking

      default List<TeamRanking> getTopGlobalRanking(int limit)
    • setSpawnPoint

      void setSpawnPoint(UUID teamId, org.bukkit.Location location)
    • clearSpawnPoint

      void clearSpawnPoint(UUID teamId)
    • getSpawnPoint

      Optional<org.bukkit.Location> getSpawnPoint(UUID teamId)
    • getTeam

      Optional<Team> getTeam(UUID teamId)
    • getTeamByName

      Optional<Team> getTeamByName(String name)
    • getTeamByTag

      Optional<Team> getTeamByTag(String tag)
    • getTeamOfPlayer

      Optional<Team> getTeamOfPlayer(UUID playerId)
    • getAllTeams

      Collection<Team> getAllTeams()