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