Block Listener に関するイベント監視を担当します。
6Fields
1Constructors
4Methods
85Lines
- Package
com.example.rankingplugin.webcoop.listeners
- Source
webcoop/listeners/BlockListener.java
- Kind
class
- Roles
- イベント駆動非同期 / スケジューラ初期化 / ブートストラップ
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。
全クラス章立てガイドを見る
クラス説明
クラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。
責務と見どころ
- イベント駆動 — Bukkit イベントやコールバックを受けて後続処理を分岐します。
- 非同期 / スケジューラ — 重い処理をメインスレッドから切り離し、定期実行も管理します。
- 初期化 / ブートストラップ — 他コンポーネントを組み立て、起動時の全体配線を担います。
重点クラスの詳細解説
Block Listener に関するイベント監視を担当します。webcoop.listeners パッケージの 小規模クラスで、運用中の主ループ・スケジューラを確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。
最初に追う読む順番
BlockListener依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
onPlace運用中の中心ループです。イベント受理から状態更新までの主経路を追えます。
onBreak運用中の中心ループです。イベント受理から状態更新までの主経路を追えます。
keykey の主要処理を担当します。
内部サブシステムの地図
起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
運用中の主ループ
イベント受理、定期監視、判定、進行更新など、実際に挙動を生む中心ロジックです。
イベント受理と主処理
Bukkit イベントや内部イベントを受けたあと、どの状態を更新するかをまとめています。
代表フロー詳解
初期化と起動の流れ
BlockListener
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
通常運用の中心フロー
onPlaceonBreak
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
反映・保存・終了の流れ
BlockListeneronPlaceonBreakkey
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
変更時の注意点
- Bukkit 実体やワールド状態を触る処理はスレッド境界を崩さないようにしてください。重い計算だけを分離し、実体操作は既存の同期経路へ寄せるのが安全です。
- DB スキーマと実装が密結合です。列追加や型変更を行うときは ensure / load / save 系をセットで見直し、古いデータとの互換も確認してください。
外部接点
主な永続化テーブル
SQL 文字列から抽出できた主要テーブルです。スキーマ変更時の確認用です。
webcoop_place_cooldownuntil_ts
フィールド
| Visibility | Type | Name | 役割 |
|---|
private | JavaPlugin | plugin | プラグイン本体参照です。 |
private | EventService | events | events の状態を保持します。 |
private | DataSource | ds | DB 接続元を保持します。 |
private | ConcurrentHashMap<String, Long> | recentPlaced | recentPlaced の状態を保持します。 |
private | Set<Material> | ORES | ORES の状態を保持します。 |
private | Set<Material> | LOGS | LOGS の状態を保持します。 |
コンストラクタ / 初期化
| Signature | 説明 | 主要呼び出し |
|---|
public BlockListener(JavaPlugin plugin, DataSource ds, EventService events) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | 主要呼び出しなし |
メソッド索引
| Name | Visibility | Kind | 説明 |
|---|
| key | private | メソッド | key の主要処理を担当します。 |
| BlockListener | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| onPlace | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onBreak | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
メソッド詳細
key
メソッドprivate
private String key(org.bukkit.block.Block b)
key の主要処理を担当します。
主要な呼び出し順
getWorldgetNamegetXgetYgetZ
BlockListener
コンストラクタpublic
public BlockListener(JavaPlugin plugin, DataSource ds, EventService events)
依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
引数
JavaPlugin pluginDataSource dsEventService events
主要な呼び出し順
目立つ内部呼び出しは抽出されませんでした。
onPlace
イベント処理public
public void onPlace(BlockPlaceEvent e)
イベント発生時の分岐と後続処理を担当します。
主要な呼び出し順
isRunninggetBlockPlacednowplusSecondstoEpochMillikeygetSchedulerrunTaskAsynchronously
onBreak
イベント処理public
public void onBreak(BlockBreakEvent e)
イベント発生時の分岐と後続処理を担当します。
主要な呼び出し順
isRunninggetPlayergetInventorygetItemInMainHandcontainsEnchantmentgetBlockgetTypecontains
代表的な処理フロー
- onBreak フロー
onBreak → isRunning → getPlayer → getInventory → getItemInMainHand → containsEnchantmentイベント発生時の分岐と後続処理を担当します。
- onPlace フロー
onPlace → isRunning → getBlockPlaced → now → plusSeconds → toEpochMilliイベント発生時の分岐と後続処理を担当します。
- key フロー
key → getWorld → getName → getX → getY → getZkey の主要処理を担当します。
外部との接点
Web ルート
このクラス内に目立つ Web ルート定義は見つかりませんでした。
SQL / テーブル
webcoop_place_cooldownuntil_ts
補足
- メソッド説明と処理フローは、Javadoc とソース本体の呼び出し列から自動要約しています。
- 匿名クラスや複雑なラムダ初期化を多用する箇所では、一部のフィールド / 呼び出し順が簡略表示になる場合があります。