xTeams API
##xTeams API
La xTeamsAPI proporciona métodos estáticos para interactuar programáticamente con xTeams. Puedes gestionar equipos, sus miembros, prioridades, nombres mostrados y verificar la pertenencia a un equipo directamente desde tu código sin necesidad de crear una instancia.
###Instalación
Agrega el repositorio y la dependencia de xTeams. Sustituye la versión por el último tag publicado.
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.33drygo</groupId>
<artifactId>xTeams</artifactId>
<version>1.3.30</version>
<scope>provided</scope>
</dependency>Después de agregar la dependencia, agrega xTeams como dependencia en tu plugin.
name: MyPlugin
main: com.example.MyPlugin.MyPlugin
version: 1.0
depend: # depend si la API es requerida, soft-depend si es opcional
- xTeams###Métodos de XTeamsAPI
Todos los métodos relacionados con jugadores aceptan el nickname del jugador como entrada. Internamente xTeams lo traduce al identificador configurado (UUID o nickname) según
settings.identifier_modeenconfig.yml, así que no necesitas hacerlo tú.
Haz clic para expandir
####
Devuelve un equipo por su nombre interno, oTeam getTeam(String name)nullsi no existe.
Team myTeam = XTeamsAPI.getTeam("Red");####
Devuelve todos los equipos existentes.Set<Team> getAllTeams()
Set<Team> teams = XTeamsAPI.getAllTeams();####
Devuelve una lista con todos los nombres de equipos.List<String> listTeamNames()
List<String> teamNames = XTeamsAPI.listTeamNames();####
Crea un nuevo equipo y lo guarda en disco. Disparavoid createTeam(String name, String displayName, int priority, Set<String> members)TeamCreateEvent. No hace nada si ya existe un equipo con el mismo nombre.
XTeamsAPI.createTeam("Red", "&cEquipo Rojo", 1, new HashSet<>(Arrays.asList("Steve", "Alex")));####
Elimina un equipo y guarda los cambios en disco. Disparavoid deleteTeam(Team team)TeamDeleteEvent.
XTeamsAPI.deleteTeam(myTeam);####
Actualiza el nombre mostrado del equipo y guarda los cambios en disco.void setDisplayName(Team team, String displayName)
XTeamsAPI.setDisplayName(myTeam, "&c&lEquipo Rojo");####
Devuelve una instantánea del equipo. Claves:Map<String, Object> getTeamInfo(Team team)name(String),displayName(String),priority(int),members(Set<String>con nicknames resueltos — nunca UUIDs en crudo).
Map<String, Object> info = XTeamsAPI.getTeamInfo(myTeam);
String displayName = (String) info.get("displayName");
@SuppressWarnings("unchecked")
Set<String> members = (Set<String>) info.get("members");####
Agrega un jugador (por nickname) a un equipo. Disparavoid joinTeam(String player, Team team)TeamJoinEvent.
XTeamsAPI.joinTeam("Steve", myTeam);####
Elimina un jugador de un equipo. Disparavoid leaveTeam(String player, Team team)TeamLeaveEvent.
XTeamsAPI.leaveTeam("Steve", myTeam);####
Agrega un jugador a todos los equipos existentes. Dispara unvoid joinAllTeams(String player)TeamJoinEventpor cada equipo en el que entre.
XTeamsAPI.joinAllTeams("Alex");####
Elimina un jugador de todos los equipos a los que pertenezca. Dispara unvoid leaveAllTeams(String player)TeamLeaveEventpor cada equipo del que salga.
XTeamsAPI.leaveAllTeams("Alex");####
Verifica si un jugador pertenece a un equipo específico.boolean isInTeam(String player, Team team)
boolean inTeam = XTeamsAPI.isInTeam("Steve", myTeam);####
Verifica si un jugador pertenece a al menos un equipo.boolean isInAnyTeam(String player)
boolean inAnyTeam = XTeamsAPI.isInAnyTeam("Steve");####
Devuelve todos los equipos a los que pertenece el jugador.List<Team> getPlayerTeams(String player)
List<Team> playerTeams = XTeamsAPI.getPlayerTeams("Steve");####
Devuelve el equipo principal del jugador — el de mayorTeam getPlayerTeam(String player)priority. Devuelvenullsi el jugador no pertenece a ningún equipo.
Team primaryTeam = XTeamsAPI.getPlayerTeam("Steve");###Modelo Team
El objeto dev.drygo.XTeams.Models.Team expone lo siguiente:
| Método | Devuelve | Notas |
|---|---|---|
getName() |
String |
Nombre interno del equipo (la clave usada por getTeam). |
getDisplayName() |
String |
Nombre mostrado, ya formateado. Puede contener códigos de color. |
getPriority() |
int |
Mayor = más importante. |
getMembers() |
Set<String> |
Identificadores en crudo — UUIDs o nicknames según identifier_mode. |
getResolvedMemberNames() |
Set<String> |
Siempre nicknames, seguros para mostrar al usuario. |
hasMember(String identifier) |
boolean |
Comprueba contra el set crudo; para una verificación por nickname usa XTeamsAPI.isInTeam. |
###Eventos de XTeams
Haz clic para expandir
Todos los eventos extienden org.bukkit.event.Event y se escuchan con los listeners normales de Bukkit.
####
TeamCreateEvent— se dispara después de crear un equipo.
@EventHandler
public void onTeamCreate(TeamCreateEvent event) {
Team team = event.getTeam();
Bukkit.getLogger().info("Equipo creado: " + team.getName());
}####
TeamDeleteEvent— se dispara después de eliminar un equipo. El objetoTeamya no existe; solo queda el nombre.
@EventHandler
public void onTeamDelete(TeamDeleteEvent event) {
String teamName = event.getTeamName();
Bukkit.getLogger().info("Equipo eliminado: " + teamName);
}####
TeamJoinEvent— se dispara después de que un jugador se une a un equipo.
@EventHandler
public void onTeamJoin(TeamJoinEvent event) {
OfflinePlayer player = event.getPlayer();
String teamName = event.getTeamName();
Bukkit.getLogger().info(player.getName() + " se unió a " + teamName);
}####
TeamLeaveEvent— se dispara después de que un jugador abandona un equipo.
@EventHandler
public void onTeamLeave(TeamLeaveEvent event) {
OfflinePlayer player = event.getPlayer();
String teamName = event.getTeamName();
Bukkit.getLogger().info(player.getName() + " abandonó " + teamName);
}###Notas
- Todos los métodos de la API son estáticos, por lo que no necesitas instanciar
XTeamsAPI. joinTeam/leaveTeamy elManagerinterno persisten los cambios enconfig.ymlautomáticamente.getPlayerTeamresuelve empates deprioritydevolviendo la primera coincidencia — diseña tus prioridades únicas si el orden importa.- Los eventos se disparan después de aplicar el cambio; no son cancelables.