Saltar para o conteúdo principal

API do MegaBlock Survivors para programadores

O MegaBlock Survivors disponibiliza uma classe de consulta e eventos Bukkit em com.magmaguy.megaBlockSurvivors.api, para que outros plugins possam acompanhar as partidas e reagir a elas. Todos são eventos Bukkit síncronos normais. Acrescente MegaBlockSurvivors à lista depend ou softdepend do seu plugin.

Consultas​

MétodoDevolve
MegaBlockSurvivorsAPI.getMatch(Player player)A SurvivorMatchInstance que o jogador está a jogar ou ainda a preparar, ou null
MegaBlockSurvivorsAPI.getMatches()Uma cópia de todas as partidas do servidor, incluindo as que ainda estão a ser preparadas

SurvivorMatchInstance estende a classe de partida da cópia do MagmaCore incluída no jar do MegaBlock Survivors, relocalizada para com.magmaguy.megablocksurvivors.magmacore.match.Match. Os seus próprios getters incluem getSurvivorPlayer(), getGameMode(), getDifficulty(), getCurrentWorld() e isCheating(). O jogador escolhe o modo de jogo e a dificuldade durante a preparação, por isso uma partida ainda em preparação devolve os valores predefinidos, CHALLENGE e MEDIUM, até o jogador escolher.

Eventos​

EventoCancelávelDados disponíveisQuando ocorre
SurvivorMatchJoinEventSimSurvivorMatchInstance match, Player playerDepois de o jogador escolher uma arma inicial, antes de ser admitido na partida
SurvivorMatchStartEventSimSurvivorMatchInstance matchLogo depois de o jogador ser admitido, antes da contagem decrescente de 3 segundos
SurvivorMatchLeaveEventNãoSurvivorMatchInstance match, Player player, SurvivorLeaveReason reasonEnquanto um jogador admitido está a sair da partida
SurvivorMatchEndEventNãoSurvivorMatchInstance match, SurvivorMatchOutcome outcomeUma vez por partida, depois de os seus mundos serem descarregados para eliminação

Cancelar SurvivorMatchJoinEvent cancela a partida e elimina o seu mundo. O jogador recebe a mensagem match.prepare_failed.

Cancelar SurvivorMatchStartEvent também cancela a partida, sem mensagem.

SurvivorMatchLeaveEvent ocorre enquanto o jogador ainda é participante, antes de ser movido para fora e antes da transferência dos Ecos de Alma e da limpeza do inventário. Um jogador que cancela durante a preparação nunca foi admitido, pelo que não ocorre nenhum evento de saída para ele.

SurvivorMatchEndEvent ocorre em todas as partidas, incluindo as canceladas durante a preparação, as terminadas com /mbs quit e as terminadas por /mbs reload ou pela desativação do plugin.

Motivos de saída​

SurvivorLeaveReasonSignificado
QUITSaiu antes de a partida começar, por exemplo porque o teletransporte de entrada falhou
DISCONNECTDesligou-se do servidor. A partida termina então como derrota
DIEDUsado pelo tratamento de dano letal do próprio núcleo partilhado de partidas. O MegaBlock Survivors cancela o dano vanilla durante uma partida e trata as mortes por conta própria, pelo que uma morte numa partida devolve MATCH_ENDED
MATCH_ENDEDA partida terminou: vitória, derrota, /mbs quit, /mbs reload ou desativação do plugin
SHUTDOWNDeclarado para encerramentos. Uma desativação normal do plugin ou /mbs reload termina primeiro as partidas através do MegaBlock Survivors, pelo que os jogadores saem com MATCH_ENDED

Resultados​

SurvivorMatchOutcomeSignificado
VICTORYUma partida Desafio derrotou o boss final e chegou ao fim do atraso de vitória de 10 segundos
DEFEATO jogador morreu sem vidas adicionais, ou desligou-se. Uma desconexão durante o atraso de vitória também devolve DEFEAT, embora a entrada na classificação já tenha sido registada
ABANDONED/mbs quit, uma preparação cancelada ou que excedeu o tempo limite, uma entrada ou um início vetados, /mbs reload ou a desativação do plugin