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
| Methode | Rü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
| Event | Abbrechbar | Bereitgestellte Daten | Wird ausgelöst |
|---|---|---|---|
SurvivorMatchJoinEvent | Ja | SurvivorMatchInstance match, Player player | Nachdem der Spieler eine Startwaffe gewählt hat, bevor er zum Durchlauf zugelassen wird |
SurvivorMatchStartEvent | Ja | SurvivorMatchInstance match | Direkt nachdem der Spieler zugelassen wurde, vor dem 3-Sekunden-Countdown |
SurvivorMatchLeaveEvent | Nein | SurvivorMatchInstance match, Player player, SurvivorLeaveReason reason | Während ein zugelassener Spieler den Durchlauf verlässt |
SurvivorMatchEndEvent | Nein | SurvivorMatchInstance match, SurvivorMatchOutcome outcome | Einmal 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
SurvivorLeaveReason | Bedeutung |
|---|---|
QUIT | Vor dem Start des Durchlaufs gegangen, zum Beispiel weil der Teleport hinein fehlgeschlagen ist |
DISCONNECT | Verbindung zum Server getrennt. Der Durchlauf endet dann als Niederlage |
DIED | Wird 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_ENDED | Der Durchlauf ist beendet: Sieg, Niederlage, /mbs quit, /mbs reload oder Deaktivieren des Plugins |
SHUTDOWN | Fü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
SurvivorMatchOutcome | Bedeutung |
|---|---|
VICTORY | Ein Challenge-Durchlauf hat den Endboss besiegt und das Ende der 10-sekündigen Siegesverzögerung erreicht |
DEFEAT | Der 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 |