xTeamsxTeams
ARCHIVED

Este proyecto está archivado y ya no recibe mantenimiento. Esta documentación se conserva como cápsula del tiempo. Su sucesor es Stella.

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_mode en config.yml, así que no necesitas hacerlo tú.

Haz clic para expandir
  • ####Team getTeam(String name)

    Devuelve un equipo por su nombre interno, o null si no existe.
Team myTeam = XTeamsAPI.getTeam("Red");
  • ####Set<Team> getAllTeams()

    Devuelve todos los equipos existentes.
Set<Team> teams = XTeamsAPI.getAllTeams();
  • ####List<String> listTeamNames()

    Devuelve una lista con todos los nombres de equipos.
List<String> teamNames = XTeamsAPI.listTeamNames();
  • ####void createTeam(String name, String displayName, int priority, Set<String> members)

    Crea un nuevo equipo y lo guarda en disco. Dispara 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")));
  • ####void deleteTeam(Team team)

    Elimina un equipo y guarda los cambios en disco. Dispara TeamDeleteEvent.
XTeamsAPI.deleteTeam(myTeam);
  • ####void setDisplayName(Team team, String displayName)

    Actualiza el nombre mostrado del equipo y guarda los cambios en disco.
XTeamsAPI.setDisplayName(myTeam, "&c&lEquipo Rojo");
  • ####Map<String, Object> getTeamInfo(Team team)

    Devuelve una instantánea del equipo. Claves: 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");
  • ####void joinTeam(String player, Team team)

    Agrega un jugador (por nickname) a un equipo. Dispara TeamJoinEvent.
XTeamsAPI.joinTeam("Steve", myTeam);
  • ####void leaveTeam(String player, Team team)

    Elimina un jugador de un equipo. Dispara TeamLeaveEvent.
XTeamsAPI.leaveTeam("Steve", myTeam);
  • ####void joinAllTeams(String player)

    Agrega un jugador a todos los equipos existentes. Dispara un TeamJoinEvent por cada equipo en el que entre.
XTeamsAPI.joinAllTeams("Alex");
  • ####void leaveAllTeams(String player)

    Elimina un jugador de todos los equipos a los que pertenezca. Dispara un TeamLeaveEvent por cada equipo del que salga.
XTeamsAPI.leaveAllTeams("Alex");
  • ####boolean isInTeam(String player, Team team)

    Verifica si un jugador pertenece a un equipo específico.
boolean inTeam = XTeamsAPI.isInTeam("Steve", myTeam);
  • ####boolean isInAnyTeam(String player)

    Verifica si un jugador pertenece a al menos un equipo.
boolean inAnyTeam = XTeamsAPI.isInAnyTeam("Steve");
  • ####List<Team> getPlayerTeams(String player)

    Devuelve todos los equipos a los que pertenece el jugador.
List<Team> playerTeams = XTeamsAPI.getPlayerTeams("Steve");
  • ####Team getPlayerTeam(String player)

    Devuelve el equipo principal del jugador — el de mayor priority. Devuelve null si 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 objeto Team ya 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 / leaveTeam y el Manager interno persisten los cambios en config.yml automáticamente.
  • getPlayerTeam resuelve empates de priority devolviendo 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.

###Referencias