起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
Periodically POST current server status to an external WordPress REST endpoint.
com.example.rankingplugin.statusstatus/WordPressStatusPusher.javaclassPeriodically POST current server status to an external WordPress REST endpoint. This is designed for WordPress/shared hosting where DB connections from the site to Minecraft servers are inconvenient. WordPress only needs to receive JSON.
Periodically POST current server status to an external WordPress REST endpoint.。status パッケージの中でも 423 行規模の中核クラスで、Web 導線・スケジューラが一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。
WordPressStatusPusherstartloadServerIconCachestoppushSoonpushOnceSynccollectPayloadsendthrottledError初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。
停止時やフロー終端で残る実体・タスク・キャッシュを戻す出口です。
Web から見えるエンドポイント、セッション解決、レスポンス整形を含みます。画面追加や API 変更時の起点になります。
メインスレッド境界とバックグラウンド処理が交差します。重い処理やタイミング起因の不具合を追うときの要所です。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
SQL 文字列から抽出できた主要テーブルです。スキーマ変更時の確認用です。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public WordPressStatusPusher( JavaPlugin plugin, ScoreService scoreService, String serverId, String serverName, String endpointUrl, String token, long periodSeconds, int timeoutMs, boolean immediateOnJoinQuit, boolean includePlayerList, boolean includePlayerStats, boolean includeServerIcon, int playerListLimit ) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | safeStr → max → min → newBuilder → connectTimeout → ofMillis |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| WordPressStatusPusher | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| start | public | メソッド | onEnable から呼ぶ |
| stop | public | メソッド | 動作中の処理やリソースを安全に停止・解放します。 |
| pushSoon | private | メソッド | pushSoon の主要処理を担当します。 |
| pushOnceSync | private | メソッド | Sync: collect Bukkit data safely, then async send HTTP |
| collectPayload | private | メソッド | collectPayload の主要処理を担当します。 |
| send | private | メソッド | send の主要処理を担当します。 |
| throttledError | private | メソッド | throttledError の主要処理を担当します。 |
| loadServerIconCache | private | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| findServerIconFile | private | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| sha1Hex | private | メソッド | sha1Hex の主要処理を担当します。 |
| toJson | private | メソッド | toJson の主要処理を担当します。 |
| add | private | メソッド | add の主要処理を担当します。 |
| add | private | メソッド | add の主要処理を担当します。 |
| add | private | メソッド | add の主要処理を担当します。 |
| add | private | メソッド | add の主要処理を担当します。 |
| add | private | メソッド | add の主要処理を担当します。 |
| escape | private | メソッド | escape の主要処理を担当します。 |
| safeStr | private | メソッド | safeStr の主要処理を担当します。 |
| safeMinecraftVersion | private | メソッド | safeMinecraftVersion の主要処理を担当します。 |
public WordPressStatusPusher( JavaPlugin plugin, ScoreService scoreService, String serverId, String serverName, String endpointUrl, String token, long periodSeconds, int timeoutMs, boolean immediateOnJoinQuit, boolean includePlayerList, boolean includePlayerStats, boolean includeServerIcon, int playerListLimit )依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
JavaPlugin pluginScoreService scoreServiceString serverIdString serverNameString endpointUrlString tokenlong periodSecondsint timeoutMsboolean immediateOnJoinQuitboolean includePlayerListboolean includePlayerStatsboolean includeServerIconint playerListLimitなし
public void start()onEnable から呼ぶ
なし
public void stop()動作中の処理やリソースを安全に停止・解放します。
なし
private void pushSoon()pushSoon の主要処理を担当します。
なし
private void pushOnceSync()Sync: collect Bukkit data safely, then async send HTTP
なし
private Payload collectPayload()collectPayload の主要処理を担当します。
なし
private void send(String json)send の主要処理を担当します。
String jsonなし
private void throttledError(String msg)throttledError の主要処理を担当します。
String msgなし
private void loadServerIconCache()必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
なし
private File findServerIconFile()必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
なし
private static String sha1Hex(byte[] bytes)sha1Hex の主要処理を担当します。
byte[] bytesなし
private static String toJson(Payload p)toJson の主要処理を担当します。
Payload pなし
private static void add(StringBuilder sb, String k, String v)add の主要処理を担当します。
StringBuilder sbString kString vなし
private static void add(StringBuilder sb, String k, long v)add の主要処理を担当します。
StringBuilder sbString klong vなし
private static void add(StringBuilder sb, String k, int v)add の主要処理を担当します。
StringBuilder sbString kint vなし
private static void add(StringBuilder sb, String k, boolean v)add の主要処理を担当します。
StringBuilder sbString kboolean vなし
private static void add(StringBuilder sb, String k, Double v)add の主要処理を担当します。
StringBuilder sbString kDouble vなし
private static String escape(String s)escape の主要処理を担当します。
String sなし
private static String safeStr(String s)safeStr の主要処理を担当します。
String sなし
private static String safeMinecraftVersion()safeMinecraftVersion の主要処理を担当します。
なし
WordPressStatusPusher → safeStr → max → min → newBuilder → connectTimeoutstart → pushOnceSync → getServer → getScheduler → runTaskTimer → getPluginManagerloadServerIconCache → findServerIconFile → isFile → readAllBytes → toPath → getEncoderstop → cancelcollectPayload → getOnlinePlayers → size → getMaxPlayers → getRuntime → maxMemorysafeMinecraftVersion → getBukkitVersion → isEmpty → indexOf → substring → getVersion