Stella API
##Stella API
La StellaAPI expone métodos estáticos para interactuar con Stella desde tu propio plugin — consultar equipos, gestionar miembros, editar propiedades de equipos y comprobar membresías, todo sin crear una instancia.
En toda la API los jugadores se identifican por UUID. Usa StellaAPI.resolvePlayer(name) para convertir un nombre en UUID, y StellaAPI.getPlayerName(uuid) para lo inverso.
###Instalación
Añade el repositorio de JitPack y la dependencia. Reemplaza la versión con el último tag publicado.
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.33drygo</groupId>
<artifactId>Stella</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>Luego declara Stella como dependencia en tu plugin.yml:
name: MyPlugin
main: com.example.MyPlugin
version: 1.0
depend: # usa soft-depend si Stella es opcional
- stella###Métodos de StellaAPI
Todos los métodos son estáticos en dev.drygo.stella.api.StellaAPI.
Los métodos que mutan (create/delete/set/add/remove) lanzan eventos de Bukkit y deben llamarse desde el hilo principal. Los eventos de jugador-equipo son cancelables, así que una mutación puede devolver false si un listener la cancela.
Consultas de equipos
####
Devuelve un equipo por su id, oTeam getTeam(String id)nullsi no existe.
Team red = StellaAPI.getTeam("red");
Consultas de jugadores
####
El equipo de mayor prioridad del jugador, oTeam getMainTeam(UUID player)nullsi no está en ninguno.
Team main = StellaAPI.getMainTeam(player.getUniqueId());####
List<Team> getPlayerTeams(UUID player)Todos los equipos del jugador, mayor prioridad primero.
####
boolean isInTeam(UUID player, String teamId)Si el jugador es miembro de un equipo específico.
####
boolean isInAnyTeam(UUID player)Si el jugador pertenece al menos a un equipo.
####
UUID resolvePlayer(String name)Resuelve un nombre a UUID (en línea, en caché o conocido sin conexión), o
null.####
String getPlayerName(UUID player)El último nombre conocido para un UUID, o
null.
Mutaciones de equipos
####
Crea un equipo y lo devuelve. DevuelveTeam createTeam(String id, int priority)nullsi el id es inválido o ya está en uso. LanzaTeamCreateEvent.
Team team = StellaAPI.createTeam("red", 10);####
boolean deleteTeam(String id)Elimina un equipo. Devuelve
falsesi no existía. LanzaTeamDeleteEvent.####
boolean setColor(String teamId, String color)Establece el color hex (
#RRGGBB) del equipo. Devuelvefalsesi el equipo no existe.####
boolean setDisplayName(String teamId, String displayName)Establece el nombre visible del equipo.
####
boolean setPriority(String teamId, int priority)Establece la prioridad del equipo.
Mutaciones de membresía
####
Añade un jugador a un equipo. Devuelveboolean addMember(String teamId, UUID player)falsesi el equipo/jugador es inválido, el jugador ya es miembro, o un listener cancelóPlayerJoinTeamEvent.
StellaAPI.addMember("red", player.getUniqueId());####
Quita un jugador de un equipo. Devuelveboolean removeMember(String teamId, UUID player)falsesi el equipo/jugador es inválido, el jugador no es miembro, o un listener cancelóPlayerLeaveTeamEvent.
###Modelo Team
El objeto dev.drygo.stella.team.Team expone:
| Método | Devuelve | Notas |
|---|---|---|
getId() |
String |
El id del equipo (siempre en minúsculas). |
getDisplayName() |
String |
El nombre visible. Puede contener códigos de color. |
getColor() |
String |
Color hex, ej. #FF5555. |
getPriority() |
int |
Mayor = más importante. |
getMembers() |
Set<UUID> |
UUIDs de los miembros. |
Prefiere los mutadores de
StellaAPI(setColor,addMember, …) sobre los setters deTeam— esos persisten enteams.yml, lanzan eventos y refrescan los hooks. Mutar elTeamdirectamente no hace nada de eso.
###Eventos de Stella
Todos los eventos están en dev.drygo.stella.api.event y se manejan con listeners normales de Bukkit.
Click para expandir
####
Cancelable. Se lanza antes de añadir un jugador a un equipo.PlayerJoinTeamEvent
@EventHandler
public void onJoin(PlayerJoinTeamEvent event) {
UUID player = event.getPlayer();
Team team = event.getTeam();
// event.setCancelled(true); // para vetar la membresía
}####
Cancelable. Se lanza antes de quitar un jugador de un equipo.PlayerLeaveTeamEvent
@EventHandler
public void onLeave(PlayerLeaveTeamEvent event) {
UUID player = event.getPlayer();
Team team = event.getTeam();
}####
Se lanza después de crear un equipo. No cancelable.TeamCreateEvent
@EventHandler
public void onCreate(TeamCreateEvent event) {
Bukkit.getLogger().info("Team created: " + event.getTeam().getId());
}####
Se lanza después de eliminar un equipo. No cancelable. La instantánea delTeamDeleteEventTeamaún es legible.
@EventHandler
public void onDelete(TeamDeleteEvent event) {
Bukkit.getLogger().info("Team deleted: " + event.getTeam().getId());
}###Notas
- Todos los métodos de
StellaAPIson estáticos — no hace falta instanciar. - Las mutaciones persisten en
teams.ymlautomáticamente y refrescan los hooks de LuckPerms / equipos de Minecraft. getMainTeam/getPlayerTeamsordenan porpriority(mayor primero); haz las prioridades únicas si el orden exacto importa.- Los eventos de jugador-equipo se lanzan antes de aplicar el cambio y pueden cancelarse; los eventos de crear/eliminar equipo se lanzan después y no.