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éthode | Renvoie |
|---|---|
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énement | Annulable | Données exposées | Déclenchement |
|---|---|---|---|
SurvivorMatchJoinEvent | Oui | SurvivorMatchInstance match, Player player | Après le choix de l'arme de départ, avant l'admission du joueur dans la partie |
SurvivorMatchStartEvent | Oui | SurvivorMatchInstance match | Juste après l'admission du joueur, avant le compte à rebours de 3 secondes |
SurvivorMatchLeaveEvent | Non | SurvivorMatchInstance match, Player player, SurvivorLeaveReason reason | Pendant le départ d'un joueur admis |
SurvivorMatchEndEvent | Non | SurvivorMatchInstance match, SurvivorMatchOutcome outcome | Une 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
SurvivorLeaveReason | Signification |
|---|---|
QUIT | Départ avant le début de la partie, par exemple parce que la téléportation d'entrée a échoué |
DISCONNECT | Déconnexion du serveur. La partie se termine alors par une défaite |
DIED | Utilisé 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_ENDED | La partie s'est terminée : victoire, défaite, /mbs quit, /mbs reload ou désactivation du plugin |
SHUTDOWN | Pré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
SurvivorMatchOutcome | Signification |
|---|---|
VICTORY | Une partie Challenge a vaincu le boss final et atteint la fin du délai de victoire de 10 secondes |
DEFEAT | Le 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 |