ビンゴ達成時の報酬を管理し、プレイヤーにタイトルとアイテムドロップを行うクラス

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

クラス説明

ビンゴ達成時の報酬を管理し、プレイヤーにタイトルとアイテムドロップを行うクラス

責務と見どころ

重点クラスの詳細解説

ビンゴ達成時の報酬を管理し、プレイヤーにタイトルとアイテムドロップを行うクラス。bingo パッケージの 小〜中規模クラスで、責務境界の要点を確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。

最初に追う読む順番

  1. BingoRewardManager
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. isAllowedReward
    報酬候補として許可するかどうか
  3. isVanilla
    バニラ判定(IDのnamespaceが minecraft かどうか)
  4. computeBaseWeight
    クラフト回数から「素の重み」を計算する。
  5. chooseWeightedRandom
    重み付きランダムで 1 つ選ぶ。
  6. giveRewards
    giveRewards の主要処理を担当します。

内部サブシステムの地図

起動・前提準備

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

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

代表フロー詳解

初期化と起動の流れ

  1. BingoRewardManager

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

変更時の注意点

フィールド

VisibilityTypeName役割
privateJavaPluginpluginプラグイン本体参照です。
privateScoreServicescoreService関連サービスへの参照です。
privateRandomrandomrandom の状態を保持します。
privateList<Material>candidatescandidates の状態を保持します。
privateSet<Material>CREATIVE_ONLY_ITEMSCREATIVE_ONLY_ITEMS の状態を保持します。

コンストラクタ / 初期化

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

メソッド索引

NameVisibilityKind説明
BingoRewardManagerpublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
isAllowedRewardprivateメソッド報酬候補として許可するかどうか
isVanillaprivateメソッドバニラ判定(IDのnamespaceが minecraft かどうか)
computeBaseWeightprivateメソッドクラフト回数から「素の重み」を計算する。
chooseWeightedRandomprivateメソッド重み付きランダムで 1 つ選ぶ。
giveRewardspublicメソッドgiveRewards の主要処理を担当します。

メソッド詳細

BingoRewardManager

コンストラクタpublic
public BingoRewardManager(JavaPlugin plugin, ScoreService scoreService)

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

引数

throws

なし

主要な呼び出し順

streamvaluesfiltercollecttoList

isAllowedReward

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

報酬候補として許可するかどうか

引数

throws

なし

主要な呼び出し順

isItemisLegacygetMaxStackSizecontainsnameendsWith

isVanilla

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

バニラ判定(IDのnamespaceが minecraft かどうか)

引数

throws

なし

主要な呼び出し順

equalsgetKeygetNamespace

computeBaseWeight

メソッドprivate
private int computeBaseWeight(Player player, Material mat)

クラフト回数から「素の重み」を計算する。

引数

throws

なし

主要な呼び出し順

getStatisticround

chooseWeightedRandom

メソッドprivate
private Material chooseWeightedRandom(Player player, List<Material> pool)

重み付きランダムで 1 つ選ぶ。

引数

throws

なし

主要な呼び出し順

isEmptysizecomputeBaseWeightisVanillaroundnextInt

giveRewards

メソッドpublic
public void giveRewards(Player player, int lines)

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

引数

throws

なし

主要な呼び出し順

isAllowedRewardisEmptygetLoggerwarningminsizechooseWeightedRandomremove

代表的な処理フロー

  1. 初期化フロー
    BingoRewardManager → stream → values → filter → collect → toList
    依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
  2. giveRewards フロー
    giveRewards → isAllowedReward → isEmpty → getLogger → warning → min
    giveRewards の主要処理を担当します。
  3. chooseWeightedRandom フロー
    chooseWeightedRandom → isEmpty → size → computeBaseWeight → isVanilla → round
    重み付きランダムで 1 つ選ぶ。
  4. isAllowedReward フロー
    isAllowedReward → isItem → isLegacy → getMaxStackSize → contains → name
    報酬候補として許可するかどうか
  5. isVanilla フロー
    isVanilla → equals → getKey → getNamespace
    バニラ判定(IDのnamespaceが minecraft かどうか)
  6. computeBaseWeight フロー
    computeBaseWeight → getStatistic → round
    クラフト回数から「素の重み」を計算する。

外部との接点

Web ルート

このクラス内に目立つ Web ルート定義は見つかりませんでした。

SQL / テーブル

テーブル名の抽出はありませんでした。

関連クラス

補足