Aller au contenu principal

API développeur de MegaBlock Survivors

MegaBlock Survivors expose une classe de requêtes et des événements Bukkit sous com.magmaguy.megaBlockSurvivors.api, afin que d'autres plugins puissent suivre les parties et y réagir. Tous les événements sont des événements Bukkit synchrones standards. Ajoutez MegaBlockSurvivors à la liste depend ou softdepend de votre plugin.

Requêtes​

MéthodeRenvoie
MegaBlockSurvivorsAPI.getMatch(Player player)La SurvivorMatchInstance que le joueur est en train de jouer ou de préparer, ou null
MegaBlockSurvivorsAPI.getMatches()Une copie de toutes les parties du serveur, y compris celles encore en préparation

SurvivorMatchInstance hérite de la classe de partie de la copie de MagmaCore intégrée au jar de MegaBlock Survivors, déplacée vers com.magmaguy.megablocksurvivors.magmacore.match.Match. Ses propres getters incluent getSurvivorPlayer(), getGameMode(), getDifficulty(), getCurrentWorld() et isCheating(). Le joueur choisit le mode de jeu et la difficulté pendant la préparation : une partie encore en préparation renvoie donc les valeurs par défaut, CHALLENGE et MEDIUM, jusqu'à ce qu'il fasse son choix.

Événements​

ÉvénementAnnulableDonnées exposéesDéclenchement
SurvivorMatchJoinEventOuiSurvivorMatchInstance match, Player playerAprès le choix de l'arme de départ, avant l'admission du joueur dans la partie
SurvivorMatchStartEventOuiSurvivorMatchInstance matchJuste après l'admission du joueur, avant le compte à rebours de 3 secondes
SurvivorMatchLeaveEventNonSurvivorMatchInstance match, Player player, SurvivorLeaveReason reasonPendant le départ d'un joueur admis
SurvivorMatchEndEventNonSurvivorMatchInstance match, SurvivorMatchOutcome outcomeUne fois par partie, après le déchargement de ses mondes en vue de leur suppression

Annuler SurvivorMatchJoinEvent annule la partie et supprime son monde. Le joueur reçoit le message match.prepare_failed.

Annuler SurvivorMatchStartEvent annule aussi la partie, sans message.

SurvivorMatchLeaveEvent se déclenche alors que le joueur est encore participant, avant qu'il soit déplacé hors de la partie et avant le transfert des Échos d'âme et le vidage de l'inventaire. Un joueur qui annule pendant la préparation n'a jamais été admis : aucun événement de départ n'est déclenché pour lui.

SurvivorMatchEndEvent se déclenche pour chaque partie, y compris celles annulées pendant la préparation, celles terminées avec /mbs quit et celles terminées par /mbs reload ou une désactivation du plugin.

Motifs de départ​

SurvivorLeaveReasonSignification
QUITDépart avant le début de la partie, par exemple parce que la téléportation d'entrée a échoué
DISCONNECTDéconnexion du serveur. La partie se termine alors par une défaite
DIEDUtilisé par la gestion des dégâts mortels du noyau de parties partagé. MegaBlock Survivors annule les dégâts vanilla pendant une partie et gère lui-même les morts : une mort en partie renvoie donc MATCH_ENDED
MATCH_ENDEDLa partie s'est terminée : victoire, défaite, /mbs quit, /mbs reload ou désactivation du plugin
SHUTDOWNPrévu pour les arrêts. Une désactivation normale du plugin ou /mbs reload termine d'abord les parties via MegaBlock Survivors : les joueurs partent donc avec MATCH_ENDED

Issues​

SurvivorMatchOutcomeSignification
VICTORYUne partie Challenge a vaincu le boss final et atteint la fin du délai de victoire de 10 secondes
DEFEATLe joueur est mort sans vie supplémentaire restante, ou s'est déconnecté. Une déconnexion pendant le délai de victoire renvoie aussi DEFEAT, bien que l'entrée de classement ait déjà été enregistrée
ABANDONED/mbs quit, une préparation annulée ou expirée, une entrée ou un démarrage refusé par un événement, /mbs reload ou une désactivation du plugin