Event Service に関するサービス層・業務処理を担当します。

7Fields
1Constructors
6Methods
120Lines
Package
com.example.rankingplugin.events
Source
events/EventService.java
Kind
class
Roles
DB / 永続化非同期 / スケジューラ初期化 / ブートストラップサービス層
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。 全クラス章立てガイドを見る

クラス説明

クラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。

責務と見どころ

重点クラスの詳細解説

Event Service に関するサービス層・業務処理を担当します。events パッケージの 小〜中規模クラスで、スケジューラを確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。

最初に追う読む順番

  1. EventService
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. start
    定期処理や公開 API の起動地点で、外部から見える挙動がここから立ち上がります。
  3. startCleaner
    定期処理や公開 API の起動地点で、外部から見える挙動がここから立ち上がります。
  4. cleanupExpiredEvents
    後片付けと停止の出口です。残骸や再ログイン後の不整合はここを確認します。
  5. stop
    後片付けと停止の出口です。残骸や再ログイン後の不整合はここを確認します。
  6. getScoreMultiplierForMobKill
    今有効な SCORE_MULTIPLIER のうち、mob_kill に効く倍率を返す(なければ 1.

内部サブシステムの地図

起動・前提準備

初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。

主なメソッド
主なフィールド

代表フロー詳解

反映・保存・終了の流れ

  1. stop
  2. cleanupExpiredEvents

結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。

変更時の注意点

外部接点

外部ルート

このクラス内で直接見つかる主な Web ルート/項目名です。

GET multiplier

主な永続化テーブル

SQL 文字列から抽出できた主要テーブルです。スキーマ変更時の確認用です。

admin_events

フィールド

VisibilityTypeName役割
privateJavaPluginpluginプラグイン本体参照です。
privateDataSourcedsDB 接続元を保持します。
privateGsongsongson の状態を保持します。
privateBukkitTaskcleanerTask非同期処理やスケジューラ制御に使うハンドルです。
privatelongcacheUntilMsキャッシュまたは直近計算結果を保持します。
privatedoublecachedMobKillMultiplierキャッシュまたは直近計算結果を保持します。
privateAtomicBooleanrefreshInFlightrefreshInFlight の状態を保持します。

コンストラクタ / 初期化

Signature説明主要呼び出し
public EventService(JavaPlugin plugin, DataSource ds)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。主要呼び出しなし

メソッド索引

NameVisibilityKind説明
EventServicepublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
getScoreMultiplierForMobKillpublicメソッド今有効な SCORE_MULTIPLIER のうち、mob_kill に効く倍率を返す(なければ 1.
startpublicメソッド初期化と各種登録を行い、機能を有効化します。
stoppublicメソッド動作中の処理やリソースを安全に停止・解放します。
startCleanerprivateメソッドend_time を過ぎたイベントを定期的に削除
cleanupExpiredEventsprivateメソッドDB への問い合わせまたは更新処理を担当します。

メソッド詳細

EventService

コンストラクタpublic
public EventService(JavaPlugin plugin, DataSource ds)

依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

getScoreMultiplierForMobKill

メソッドpublic
public double getScoreMultiplierForMobKill()

今有効な SCORE_MULTIPLIER のうち、mob_kill に効く倍率を返す(なければ 1.

引数

throws

なし

主要な呼び出し順

currentTimeMilliscompareAndSetgetSchedulerrunTaskAsynchronouslygetConnectionprepareStatementexecuteQuerynext

start

メソッドpublic
public void start()

初期化と各種登録を行い、機能を有効化します。

引数

throws

なし

主要な呼び出し順

startCleaner

stop

メソッドpublic
public void stop()

動作中の処理やリソースを安全に停止・解放します。

引数

throws

なし

主要な呼び出し順

cancel

startCleaner

メソッドprivate
private void startCleaner()

end_time を過ぎたイベントを定期的に削除

引数

throws

なし

主要な呼び出し順

getSchedulerrunTaskTimerAsynchronously

cleanupExpiredEvents

メソッドprivate
private void cleanupExpiredEvents()

DB への問い合わせまたは更新処理を担当します。

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetTimestampvalueOfnowexecuteUpdategetLoggerinfo

代表的な処理フロー

  1. startCleaner フロー
    startCleaner → getScheduler → runTaskTimerAsynchronously
    end_time を過ぎたイベントを定期的に削除
  2. start フロー
    start → startCleaner
    初期化と各種登録を行い、機能を有効化します。
  3. stop フロー
    stop → cancel
    動作中の処理やリソースを安全に停止・解放します。
  4. cleanupExpiredEvents フロー
    cleanupExpiredEvents → getConnection → prepareStatement → setTimestamp → valueOf → now
    DB への問い合わせまたは更新処理を担当します。
  5. getScoreMultiplierForMobKill フロー
    getScoreMultiplierForMobKill → currentTimeMillis → compareAndSet → getScheduler → runTaskAsynchronously → getConnection
    今有効な SCORE_MULTIPLIER のうち、mob_kill に効く倍率を返す(なければ 1.

外部との接点

Web ルート

GET multiplier

SQL / テーブル

admin_events

関連クラス

補足