Class Team
java.lang.Object
fr.luc.crcore.util.common.AbstractEntity
fr.luc.crcore.features.team.Team
- All Implemented Interfaces:
Identifiable, Named, ScoreHolder
Représente une équipe de joueurs. Aggregate mutable : ajout / retrait de
membres, transfert de leadership, mise à jour de visibilité, des scores
nommés, et du point de spawn passent par les méthodes de cette classe.
L'identité d'une équipe est son UUID (AbstractEntity.getId()). Deux Team avec
le même UUID sont égales, quel que soit le reste de leur état.
Implémente Named (a un nom) et ScoreHolder (porte des
scores nommés). Hérite de AbstractEntity pour l'identité.
Toutes les modifications passent normalement par le TeamService,
qui orchestre persistance + hooks + évènements Bukkit. Modifier une instance
directement (ex. team.addMember(...)) court-circuite la persistance.
-
Constructor Summary
ConstructorsConstructorDescriptionCrée une équipe sans chef, visibilitéTeamVisibility.PRIVATE.Crée une équipe sans chef avec la visibilité spécifiée.Crée une équipe avec chef, visibilitéTeamVisibility.PRIVATE.Crée une équipe. -
Method Summary
Modifier and TypeMethodDescriptionintvoidgetColor()LeTeamMemberchef si la team en a un, sinonOptional.empty().L'UUID du chef si la team en a un, sinonOptional.empty().getName()intMap mutable des overrides per-team de settings.Optional<org.bukkit.Location> getTag()intbooleantruesi la team a un chef défini.booleanbooleanbooleanbooleantruesiplayerIdest l'UUID du chef actuel.booleanisPublic()protected TeamMemberOverride to instantiate a custom TeamMember subclass.booleanremoveMember(UUID playerId) voidbooleanresetScore(String scoreName) voidAssigne un chef à l'équipe, plus flexible quetransferLeadership(UUID): Si la team est leaderless → ajouteplayerIdcomme chef (en tant que membre s'il ne l'est pas déjà). Si la team a déjà un chef → démet l'ancien enTeamRole.MEMBER, promeutplayerIdenTeamRole.LEADER(auto-ajout si pas membre).intvoidsetSpawnPoint(org.bukkit.Location location) voidsetVisibility(TeamVisibility visibility) intsize()voidtransferLeadership(UUID newLeaderId) Transfert classique du leadership : le nouveau chef doit déjà être membre de l'équipe, et l'équipe doit avoir un chef actuel.Methods inherited from class AbstractEntity
equals, getId, hashCode
-
Constructor Details
-
Team
Crée une équipe sans chef, visibilitéTeamVisibility.PRIVATE. -
Team
Crée une équipe sans chef avec la visibilité spécifiée. -
Team
-
Team
-
-
Method Details
-
getSettings
Map mutable des overrides per-team de settings. Clé = nom duTeamSetting, valeur = forme sérialisable (Boolean, Integer, String, …).Lecture / modification typée recommandée via
TeamConfigService, qui gère la cascade per-team → global → default et persiste les écritures. -
newMember
Override to instantiate a custom TeamMember subclass. -
getName
-
getTag
-
getColor
-
getLeaderId
L'UUID du chef si la team en a un, sinonOptional.empty(). -
hasLeader
public boolean hasLeader()truesi la team a un chef défini. -
isLeader
truesiplayerIdest l'UUID du chef actuel. -
getVisibility
-
setVisibility
-
isPublic
public boolean isPublic() -
getLeader
LeTeamMemberchef si la team en a un, sinonOptional.empty(). -
getMembers
-
getMember
-
hasMember
-
size
public int size() -
addMember
-
removeMember
-
transferLeadership
Transfert classique du leadership : le nouveau chef doit déjà être membre de l'équipe, et l'équipe doit avoir un chef actuel.Pour un cas plus général (équipe leaderless, ou nouveau chef non encore membre), utiliser
setLeader(UUID). -
setLeader
Assigne un chef à l'équipe, plus flexible quetransferLeadership(UUID):- Si la team est leaderless → ajoute
playerIdcomme chef (en tant que membre s'il ne l'est pas déjà). - Si la team a déjà un chef → démet l'ancien en
TeamRole.MEMBER, promeutplayerIdenTeamRole.LEADER(auto-ajout si pas membre).
- Si la team est leaderless → ajoute
-
getScore
- Specified by:
getScorein interfaceScoreHolder
-
hasScore
- Specified by:
hasScorein interfaceScoreHolder
-
getScores
- Specified by:
getScoresin interfaceScoreHolder
-
getTotalScore
public int getTotalScore()- Specified by:
getTotalScorein interfaceScoreHolder
-
addScore
- Specified by:
addScorein interfaceScoreHolder
-
setScore
- Specified by:
setScorein interfaceScoreHolder
-
resetScore
- Specified by:
resetScorein interfaceScoreHolder
-
resetAllScores
public void resetAllScores()- Specified by:
resetAllScoresin interfaceScoreHolder
-
getSpawnPoint
-
hasSpawnPoint
public boolean hasSpawnPoint() -
setSpawnPoint
public void setSpawnPoint(org.bukkit.Location location) -
clearSpawnPoint
public void clearSpawnPoint()
-