API para desarrolladores de MegaBlock Survivors
MegaBlock Survivors expone una clase de consulta y eventos de Bukkit en com.magmaguy.megaBlockSurvivors.api para que otros plugins puedan seguir las partidas y reaccionar a ellas. Todos son eventos Bukkit síncronos estándar. Añade MegaBlockSurvivors a la lista depend o softdepend de tu plugin.
Consultas
| Método | Devuelve |
|---|---|
MegaBlockSurvivorsAPI.getMatch(Player player) | La SurvivorMatchInstance que el jugador está jugando o todavía configurando, o null |
MegaBlockSurvivorsAPI.getMatches() | Una copia de todas las partidas del servidor, incluidas las que aún se están configurando |
SurvivorMatchInstance extiende la clase de partida de la copia de MagmaCore incluida en el JAR de MegaBlock Survivors, reubicada en com.magmaguy.megablocksurvivors.magmacore.match.Match. Entre sus propios getters están getSurvivorPlayer(), getGameMode(), getDifficulty(), getCurrentWorld() e isCheating(). El jugador elige el modo de juego y la dificultad durante la configuración, así que una partida que todavía se está configurando devuelve los valores predeterminados, CHALLENGE y MEDIUM, hasta que los elija.
Eventos
| Evento | Cancelable | Datos expuestos | Cuándo se emite |
|---|---|---|---|
SurvivorMatchJoinEvent | Sí | SurvivorMatchInstance match, Player player | Después de que el jugador elija un arma inicial y antes de admitirlo en la partida |
SurvivorMatchStartEvent | Sí | SurvivorMatchInstance match | Justo después de admitir al jugador, antes de la cuenta atrás de 3 segundos |
SurvivorMatchLeaveEvent | No | SurvivorMatchInstance match, Player player, SurvivorLeaveReason reason | Mientras un jugador admitido sale de la partida |
SurvivorMatchEndEvent | No | SurvivorMatchInstance match, SurvivorMatchOutcome outcome | Una vez por partida, después de descargar sus mundos para borrarlos |
Cancelar SurvivorMatchJoinEvent cancela la partida y borra su mundo. El jugador recibe el mensaje match.prepare_failed.
Cancelar SurvivorMatchStartEvent también cancela la partida, sin ningún mensaje.
SurvivorMatchLeaveEvent se emite mientras el jugador sigue siendo participante, antes de trasladarlo fuera y antes de transferir los ecos de alma y vaciar el inventario. Un jugador que cancela durante la configuración nunca llegó a ser admitido, así que no se emite ningún evento de salida para él.
SurvivorMatchEndEvent se emite para todas las partidas, incluidas las canceladas durante la configuración, las terminadas con /mbs quit y las terminadas por /mbs reload o al deshabilitar el plugin.
Motivos de salida
SurvivorLeaveReason | Significado |
|---|---|
QUIT | Salió antes de que empezara la partida, por ejemplo porque falló el teletransporte de entrada |
DISCONNECT | Se desconectó del servidor. La partida termina entonces como derrota |
DIED | Lo usa la gestión propia del daño letal del núcleo compartido de partidas. MegaBlock Survivors cancela el daño vanilla durante una partida y gestiona las muertes por su cuenta, así que una muerte en una partida devuelve MATCH_ENDED |
MATCH_ENDED | La partida terminó: victoria, derrota, /mbs quit, /mbs reload o deshabilitación del plugin |
SHUTDOWN | Declarado para los apagados. Una deshabilitación normal del plugin o /mbs reload termina antes las partidas mediante MegaBlock Survivors, así que los jugadores salen con MATCH_ENDED |
Resultados
SurvivorMatchOutcome | Significado |
|---|---|
VICTORY | Una partida del modo Desafío derrotó al jefe final y llegó al final de la espera de victoria de 10 segundos |
DEFEAT | El jugador murió sin vidas extra o se desconectó. Una desconexión durante la espera de victoria también devuelve DEFEAT, aunque la entrada de la clasificación ya se haya registrado |
ABANDONED | /mbs quit, una configuración cancelada o que agotó el tiempo, una entrada o un inicio vetados, /mbs reload o la deshabilitación del plugin |