メインコンテンツまでスキップ

MegaBlock Survivors 開発者API

MegaBlock Survivors は com.magmaguy.megaBlockSurvivors.api パッケージの下にクエリクラスと Bukkit イベントを公開しており、他のプラグインはこれを使ってランを追跡し、それに反応できます。すべてのイベントは標準的な同期 Bukkit イベントです。プラグインの depend または softdepend リストに MegaBlockSurvivors を追加してください。

クエリ​

メソッド戻り値
MegaBlockSurvivorsAPI.getMatch(Player player)プレイヤーがプレイ中、またはまだセットアップ中の SurvivorMatchInstance。該当しなければ null
MegaBlockSurvivorsAPI.getMatches()セットアップ中のランを含む、サーバー上のすべてのランのコピー

SurvivorMatchInstance は、MegaBlock Survivors の jar に同梱された MagmaCore のマッチクラスを継承しています。このクラスは com.magmaguy.megablocksurvivors.magmacore.match.Match に再配置されています。独自の getter には getSurvivorPlayer()、getGameMode()、getDifficulty()、getCurrentWorld()、isCheating() があります。ゲームモードと難易度はプレイヤーがセットアップ中に選ぶため、セットアップ中のランは、プレイヤーが選択するまでデフォルトの CHALLENGE と MEDIUM を返します。

イベント​

イベントキャンセル可能公開データ発火タイミング
SurvivorMatchJoinEventはいSurvivorMatchInstance match, Player playerプレイヤーが開始武器を選んだ後、ランに受け入れられる前
SurvivorMatchStartEventはいSurvivorMatchInstance matchプレイヤーが受け入れられた直後、3 秒のカウントダウンの前
SurvivorMatchLeaveEventいいえSurvivorMatchInstance match, Player player, SurvivorLeaveReason reason受け入れ済みのプレイヤーがランから退出する処理中
SurvivorMatchEndEventいいえSurvivorMatchInstance match, SurvivorMatchOutcome outcomeランごとに 1 回、そのワールドが削除のためにアンロードされた後

SurvivorMatchJoinEvent をキャンセルするとランがキャンセルされ、そのワールドは削除されます。プレイヤーには match.prepare_failed メッセージが表示されます。

SurvivorMatchStartEvent をキャンセルした場合もランはキャンセルされますが、メッセージは表示されません。

SurvivorMatchLeaveEvent は、プレイヤーがまだ参加者である間、外へ移動される前、そして Soul Echo の加算とインベントリの消去の前に発火します。セットアップ中にキャンセルしたプレイヤーは一度も受け入れられていないため、退出イベントは発火しません。

SurvivorMatchEndEvent は、セットアップ中にキャンセルされたラン、/mbs quit で終了したラン、/mbs reload やプラグインの無効化で終了したランを含め、すべてのランで発火します。

退出理由​

SurvivorLeaveReason意味
QUITランの開始前に退出した (例: 入場時のテレポートに失敗した場合)
DISCONNECTサーバーから切断した。その後、ランは敗北として終了します
DIED共有マッチコア自身の致命的ダメージ処理で使用されます。MegaBlock Survivors はラン中のバニラダメージをキャンセルし、死亡を独自に処理するため、ラン中の死亡は MATCH_ENDED として報告されます
MATCH_ENDEDランが終了した: 勝利、敗北、/mbs quit、/mbs reload、またはプラグインの無効化
SHUTDOWNシャットダウン用に宣言されています。通常のプラグイン無効化や /mbs reload では、先に MegaBlock Survivors がランを終了させるため、プレイヤーは MATCH_ENDED で退出します

結果​

SurvivorMatchOutcome意味
VICTORYChallenge のランでラストボスを倒し、10 秒間の勝利待機の終わりまで到達した
DEFEAT追加ライフが残っていない状態でプレイヤーが死亡した、または切断した。勝利待機中の切断も DEFEAT として報告されますが、リーダーボードのエントリはすでに記録されています
ABANDONED/mbs quit、キャンセルまたはタイムアウトしたセットアップ、拒否された参加または開始、/mbs reload、またはプラグインの無効化