Saltar al contenido principal

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étodoDevuelve
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​

EventoCancelableDatos expuestosCuándo se emite
SurvivorMatchJoinEventSíSurvivorMatchInstance match, Player playerDespués de que el jugador elija un arma inicial y antes de admitirlo en la partida
SurvivorMatchStartEventSíSurvivorMatchInstance matchJusto después de admitir al jugador, antes de la cuenta atrás de 3 segundos
SurvivorMatchLeaveEventNoSurvivorMatchInstance match, Player player, SurvivorLeaveReason reasonMientras un jugador admitido sale de la partida
SurvivorMatchEndEventNoSurvivorMatchInstance match, SurvivorMatchOutcome outcomeUna 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​

SurvivorLeaveReasonSignificado
QUITSalió antes de que empezara la partida, por ejemplo porque falló el teletransporte de entrada
DISCONNECTSe desconectó del servidor. La partida termina entonces como derrota
DIEDLo 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_ENDEDLa partida terminó: victoria, derrota, /mbs quit, /mbs reload o deshabilitación del plugin
SHUTDOWNDeclarado 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​

SurvivorMatchOutcomeSignificado
VICTORYUna partida del modo Desafío derrotó al jefe final y llegó al final de la espera de victoria de 10 segundos
DEFEATEl 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