Bingo Rewarder を担当するclassです。

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

クラス説明

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

責務と見どころ

重点クラスの詳細解説

Bingo Rewarder を担当するclassです。bingo パッケージの 小〜中規模クラスで、スケジューラを確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。

最初に追う読む順番

  1. BingoRewarder
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. isAllowedReward
    条件判定を行い、後続処理の分岐に使える真偽値を返します。
  3. getRunningConfig
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
  4. awardIfIncreased
    awardIfIncreased の主要処理を担当します。
  5. fillWithDefaults
    fillWithDefaults の主要処理を担当します。

内部サブシステムの地図

起動・前提準備

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

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

入口 API と対象解決

外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。

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

永続化と状態同期

DB テーブルとの境界です。スキーマ変更や保存漏れの切り分けはここから行います。

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

代表フロー詳解

初期化と起動の流れ

  1. BingoRewarder
  2. getRunningConfig

このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。

変更時の注意点

外部接点

外部ルート

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

GET max_linesGET defaultGET materialGET amountGET materialGET amount

主な永続化テーブル

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

admin_events

フィールド

VisibilityTypeName役割
privateDataSourcedsDB 接続元を保持します。
privateJavaPluginpluginプラグイン本体参照です。
privateScoreServicescoreService関連サービスへの参照です。
privateGsongsongson の状態を保持します。
privateSet<Material>DISALLOWED_REWARD_ITEMSDISALLOWED_REWARD_ITEMS の状態を保持します。

コンストラクタ / 初期化

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

メソッド索引

NameVisibilityKind説明
BingoRewarderpublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
BingoRewarderpublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
isAllowedRewardprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
getRunningConfigpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
awardIfIncreasedpublicメソッドawardIfIncreased の主要処理を担当します。
fillWithDefaultsprivateメソッドfillWithDefaults の主要処理を担当します。

メソッド詳細

BingoRewarder

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

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

引数

throws

なし

主要な呼び出し順

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

BingoRewarder

コンストラクタpublic
public BingoRewarder(DataSource ds, JavaPlugin plugin, ScoreService scoreService)

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

引数

throws

なし

主要な呼び出し順

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

isAllowedReward

メソッドprivate
private boolean isAllowedReward(Material mat)

条件判定を行い、後続処理の分岐に使える真偽値を返します。

引数

throws

なし

主要な呼び出し順

isItemisLegacygetMaxStackSizecontainsnameendsWith

getRunningConfig

メソッドpublic
public Optional<Config> getRunningConfig()

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementexecuteQuerynextemptygetStringisEmptyparseString

awardIfIncreased

メソッドpublic
public void awardIfIncreased(UUID playerId, int newLines, int alreadyAwarded)

awardIfIncreased の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

getRunningConfigisEmptymaxmingetPlayergetSchedulerrunTaskvalueOf

fillWithDefaults

メソッドprivate
private void fillWithDefaults(Config cfg)

fillWithDefaults の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

isEmptyentrySetcomputeIfAbsentgetKeygetValue

代表的な処理フロー

  1. awardIfIncreased フロー
    awardIfIncreased → getRunningConfig → isEmpty → max → min → getPlayer
    awardIfIncreased の主要処理を担当します。
  2. getRunningConfig フロー
    getRunningConfig → getConnection → prepareStatement → executeQuery → next → empty
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
  3. isAllowedReward フロー
    isAllowedReward → isItem → isLegacy → getMaxStackSize → contains → name
    条件判定を行い、後続処理の分岐に使える真偽値を返します。
  4. fillWithDefaults フロー
    fillWithDefaults → isEmpty → entrySet → computeIfAbsent → getKey → getValue
    fillWithDefaults の主要処理を担当します。

外部との接点

Web ルート

GET max_linesGET defaultGET materialGET amountGET materialGET amount

SQL / テーブル

admin_events

関連クラス

補足