Zum Hauptinhalt springen

MegaBlock Survivors Entwickler-API

MegaBlock Survivors stellt unter com.magmaguy.megaBlockSurvivors.api eine Abfrageklasse und Bukkit-Events bereit, mit denen andere Plugins Durchläufe verfolgen und darauf reagieren können. Alle Events sind standardmäßige synchrone Bukkit-Events. Füge MegaBlockSurvivors zur depend- oder softdepend-Liste deines Plugins hinzu.

Abfragen​

MethodeRückgabe
MegaBlockSurvivorsAPI.getMatch(Player player)Die SurvivorMatchInstance, die der Spieler gerade spielt oder noch einrichtet, oder null
MegaBlockSurvivorsAPI.getMatches()Eine Kopie aller Durchläufe auf dem Server, einschließlich derer, die noch eingerichtet werden

SurvivorMatchInstance erweitert die Match-Klasse der MagmaCore-Kopie, die in der MegaBlock-Survivors-Jar mitgeliefert und nach com.magmaguy.megablocksurvivors.magmacore.match.Match verschoben wird. Zu ihren eigenen Gettern gehören getSurvivorPlayer(), getGameMode(), getDifficulty(), getCurrentWorld() und isCheating(). Spielmodus und Schwierigkeit wählt der Spieler während der Einrichtung. Ein Durchlauf, der noch eingerichtet wird, meldet daher die Standardwerte CHALLENGE und MEDIUM, bis der Spieler seine Wahl getroffen hat.

Events​

EventAbbrechbarBereitgestellte DatenWird ausgelöst
SurvivorMatchJoinEventJaSurvivorMatchInstance match, Player playerNachdem der Spieler eine Startwaffe gewählt hat, bevor er zum Durchlauf zugelassen wird
SurvivorMatchStartEventJaSurvivorMatchInstance matchDirekt nachdem der Spieler zugelassen wurde, vor dem 3-Sekunden-Countdown
SurvivorMatchLeaveEventNeinSurvivorMatchInstance match, Player player, SurvivorLeaveReason reasonWährend ein zugelassener Spieler den Durchlauf verlässt
SurvivorMatchEndEventNeinSurvivorMatchInstance match, SurvivorMatchOutcome outcomeEinmal pro Durchlauf, nachdem seine Welten zum Löschen entladen wurden

Das Abbrechen von SurvivorMatchJoinEvent bricht den Durchlauf ab und löscht seine Welt. Der Spieler erhält die Nachricht match.prepare_failed.

Das Abbrechen von SurvivorMatchStartEvent bricht den Durchlauf ebenfalls ab, aber ohne Nachricht.

SurvivorMatchLeaveEvent wird ausgelöst, während der Spieler noch Teilnehmer ist, bevor er hinausbewegt wird und bevor die Soul Echoes gutgeschrieben und das Inventar geleert werden. Ein Spieler, der während der Einrichtung abbricht, wurde nie zugelassen, daher wird für ihn kein Leave-Event ausgelöst.

SurvivorMatchEndEvent wird für jeden Durchlauf ausgelöst, auch für Durchläufe, die während der Einrichtung abgebrochen, mit /mbs quit beendet oder durch /mbs reload bzw. das Deaktivieren des Plugins beendet wurden.

Gründe für das Verlassen​

SurvivorLeaveReasonBedeutung
QUITVor dem Start des Durchlaufs gegangen, zum Beispiel weil der Teleport hinein fehlgeschlagen ist
DISCONNECTVerbindung zum Server getrennt. Der Durchlauf endet dann als Niederlage
DIEDWird von der eigenen Behandlung tödlichen Schadens im gemeinsamen Match-Kern verwendet. MegaBlock Survivors bricht während eines Durchlaufs Vanilla-Schaden ab und behandelt Tode selbst, daher meldet ein Tod im Durchlauf MATCH_ENDED
MATCH_ENDEDDer Durchlauf ist beendet: Sieg, Niederlage, /mbs quit, /mbs reload oder Deaktivieren des Plugins
SHUTDOWNFür das Herunterfahren deklariert. Ein normales Deaktivieren des Plugins oder /mbs reload beendet Durchläufe zuerst über MegaBlock Survivors, daher gehen die Spieler mit MATCH_ENDED

Ergebnisse​

SurvivorMatchOutcomeBedeutung
VICTORYEin Challenge-Durchlauf hat den Endboss besiegt und das Ende der 10-sekündigen Siegesverzögerung erreicht
DEFEATDer Spieler ist ohne verbleibende Extra-Leben gestorben oder hat die Verbindung getrennt. Ein Verbindungsabbruch während der Siegesverzögerung meldet ebenfalls DEFEAT, obwohl der Bestenlisteneintrag bereits gespeichert wurde
ABANDONED/mbs quit, eine abgebrochene oder abgelaufene Einrichtung, ein per Veto verhinderter Beitritt oder Start, /mbs reload oder das Deaktivieren des Plugins