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étodo | Devolve |
|---|---|
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
| Evento | Cancelável | Dados disponíveis | Quando ocorre |
|---|---|---|---|
SurvivorMatchJoinEvent | Sim | SurvivorMatchInstance match, Player player | Depois de o jogador escolher uma arma inicial, antes de ser admitido na partida |
SurvivorMatchStartEvent | Sim | SurvivorMatchInstance match | Logo depois de o jogador ser admitido, antes da contagem decrescente de 3 segundos |
SurvivorMatchLeaveEvent | Não | SurvivorMatchInstance match, Player player, SurvivorLeaveReason reason | Enquanto um jogador admitido está a sair da partida |
SurvivorMatchEndEvent | Não | SurvivorMatchInstance match, SurvivorMatchOutcome outcome | Uma 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
SurvivorLeaveReason | Significado |
|---|---|
QUIT | Saiu antes de a partida começar, por exemplo porque o teletransporte de entrada falhou |
DISCONNECT | Desligou-se do servidor. A partida termina então como derrota |
DIED | Usado 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_ENDED | A partida terminou: vitória, derrota, /mbs quit, /mbs reload ou desativação do plugin |
SHUTDOWN | Declarado 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
SurvivorMatchOutcome | Significado |
|---|---|
VICTORY | Uma partida Desafio derrotou o boss final e chegou ao fim do atraso de vitória de 10 segundos |
DEFEAT | O 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 |