起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
Online Status Service に関するサービス層・業務処理を担当します。
com.example.rankingpluginOnlineStatusService.javaclassクラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。
Online Status Service に関するサービス層・業務処理を担当します。(root) パッケージの 小〜中規模クラスで、運用中の主ループ・永続化境界・スケジューラを確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。
OnlineStatusServiceonJoinonQuitupdateOnlinePlayerscleanupExpiredclearServerPresenceisOnlineHereisOnlineElsewhere初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。
イベント受理、定期監視、判定、進行更新など、実際に挙動を生む中心ロジックです。
メモリ状態と保存状態を揃え、結果を次の呼び出しや画面表示へ繋ぐ部分です。
DB テーブルとの境界です。スキーマ変更や保存漏れの切り分けはここから行います。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
SQL 文字列から抽出できた主要テーブルです。スキーマ変更時の確認用です。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public OnlineStatusService(JavaPlugin plugin, HikariDataSource ds) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | resolve → getConnection → createStatement → executeUpdate → user_status → getLogger |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| OnlineStatusService | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| onJoin | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onQuit | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| updateOnlinePlayers | private | メソッド | 状態を永続化または更新し、最新状態へ反映します。 |
| clearServerPresence | private | メソッド | DB への問い合わせまたは更新処理を担当します。 |
| cleanupExpired | private | メソッド | DB への問い合わせまたは更新処理を担当します。 |
| isOnlineHere | public | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| isOnlineElsewhere | public | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| getOnlineServers | public | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| getOnlineServersBatch | public | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
public OnlineStatusService(JavaPlugin plugin, HikariDataSource ds)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
JavaPlugin pluginHikariDataSource dsなし
public void onJoin(PlayerJoinEvent e)イベント発生時の分岐と後続処理を担当します。
PlayerJoinEvent eなし
public void onQuit(PlayerQuitEvent e)イベント発生時の分岐と後続処理を担当します。
PlayerQuitEvent eなし
private void updateOnlinePlayers(Collection<String> playerNames)状態を永続化または更新し、最新状態へ反映します。
Collection<String> playerNamesなし
private void clearServerPresence(String playerName)DB への問い合わせまたは更新処理を担当します。
String playerNameなし
private void cleanupExpired()DB への問い合わせまたは更新処理を担当します。
なし
public boolean isOnlineHere(String playerName)条件判定を行い、後続処理の分岐に使える真偽値を返します。
String playerNameなし
public boolean isOnlineElsewhere(String playerName)条件判定を行い、後続処理の分岐に使える真偽値を返します。
String playerNameなし
public Set<String> getOnlineServers(String playerName)必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
String playerNameなし
public Map<String, Set<String>> getOnlineServersBatch(Collection<String> players)必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
Collection<String> playersなし
OnlineStatusService → resolve → getConnection → createStatement → executeUpdate → user_statusonJoin → getPlayer → getName → isBlank → singleton → currentTimeMillisonQuit → getPlayer → getName → isBlank → remove → getSchedulerupdateOnlinePlayers → now → user_status → getConnection → prepareStatement → setStringcleanupExpired → getConnection → prepareStatement → now → minusSeconds → setTimestampgetOnlineServers → isBlank → emptySet → currentTimeMillis → now → minusSeconds