起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
ボスアリーナのドーム内部を「地形破壊なし」に保護するリスナー。
com.example.rankingplugin.minigame.arenaminigame/arena/BossArenaProtection.javaclassボスアリーナのドーム内部を「地形破壊なし」に保護するリスナー。 - 破壊/設置/流体/火/爆発/ピストン/モブ改変 を全て阻止 - 爆発はダメージやノックバックは通し、blockList だけ除去 使い方: BossArenaProtection.register(this); // onEnableで一度だけ BossArenaProtection.addDome(world, cx, y0, cz, rDome); // ドーム生成ごと
ボスアリーナのドーム内部を「地形破壊なし」に保護するリスナー。minigame.arena パッケージの 小〜中規模クラスで、運用中の主ループを確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。
BossArenaProtectiononBreakonPlaceonBucketEmptyonBucketFillonPistonExtendonPistonRetractonEntityExplode初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
イベント受理、定期監視、判定、進行更新など、実際に挙動を生む中心ロジックです。
Bukkit イベントや内部イベントを受けたあと、どの状態を更新するかをまとめています。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
| Visibility | Type | Name | 役割 |
|---|---|---|---|
private | boolean | registered | registered の状態を保持します。 |
private | JavaPlugin | plugin | プラグイン本体参照です。 |
private | List<Dome> | DOMES | DOMES の状態を保持します。 |
| Signature | 説明 | 主要呼び出し |
|---|---|---|
private BossArenaProtection() | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | 主要呼び出しなし |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| BossArenaProtection | private | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| register | public | メソッド | onEnable で一度だけ呼ぶ |
| addDome | public | メソッド | ドームを登録(y0 から r+6 までの高さを保護) |
| inside | private | メソッド | inside の主要処理を担当します。 |
| onBreak | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onPlace | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onBucketEmpty | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onBucketFill | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onPistonExtend | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onPistonRetract | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onEntityExplode | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onBlockExplode | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onEntityChangeBlock | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onHangingBreak | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onIgnite | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onBurn | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onSpread | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onFromTo | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onInventoryMove | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
private BossArenaProtection()依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
なし
public static void register(JavaPlugin pl)onEnable で一度だけ呼ぶ
JavaPlugin plなし
public static void addDome(World w, int cx, int y0, int cz, int r)ドームを登録(y0 から r+6 までの高さを保護)
World wint cxint y0int czint rなし
private static boolean inside(Location l)inside の主要処理を担当します。
Location lなし
public void onBreak(BlockBreakEvent e)イベント発生時の分岐と後続処理を担当します。
BlockBreakEvent eなし
public void onPlace(BlockPlaceEvent e)イベント発生時の分岐と後続処理を担当します。
BlockPlaceEvent eなし
public void onBucketEmpty(PlayerBucketEmptyEvent e)イベント発生時の分岐と後続処理を担当します。
PlayerBucketEmptyEvent eなし
public void onBucketFill(PlayerBucketFillEvent e)イベント発生時の分岐と後続処理を担当します。
PlayerBucketFillEvent eなし
public void onPistonExtend(BlockPistonExtendEvent e)イベント発生時の分岐と後続処理を担当します。
BlockPistonExtendEvent eなし
public void onPistonRetract(BlockPistonRetractEvent e)イベント発生時の分岐と後続処理を担当します。
BlockPistonRetractEvent eなし
public void onEntityExplode(EntityExplodeEvent e)イベント発生時の分岐と後続処理を担当します。
EntityExplodeEvent eなし
public void onBlockExplode(BlockExplodeEvent e)イベント発生時の分岐と後続処理を担当します。
BlockExplodeEvent eなし
public void onEntityChangeBlock(EntityChangeBlockEvent e)イベント発生時の分岐と後続処理を担当します。
EntityChangeBlockEvent eなし
public void onHangingBreak(HangingBreakByEntityEvent e)イベント発生時の分岐と後続処理を担当します。
HangingBreakByEntityEvent eなし
public void onIgnite(BlockIgniteEvent e)イベント発生時の分岐と後続処理を担当します。
BlockIgniteEvent eなし
public void onBurn(BlockBurnEvent e)イベント発生時の分岐と後続処理を担当します。
BlockBurnEvent eなし
public void onSpread(BlockSpreadEvent e)イベント発生時の分岐と後続処理を担当します。
BlockSpreadEvent eなし
public void onFromTo(BlockFromToEvent e)イベント発生時の分岐と後続処理を担当します。
BlockFromToEvent eなし
public void onInventoryMove(InventoryMoveItemEvent e)イベント発生時の分岐と後続処理を担当します。
InventoryMoveItemEvent eなし
onFromTo → inside → getBlock → getLocation → getWorld → getToBlockonBlockExplode → blockList → removeIf → inside → getLocation → setYieldonEntityExplode → blockList → removeIf → inside → getLocation → setYieldonPistonExtend → inside → getBlock → getLocation → setCancelled → getBlocksonPistonRetract → inside → getBlock → getLocation → setCancelled → getBlocks