起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
Score Listener に関するイベント監視を担当します。
com.example.rankingpluginScoreListener.javaclassクラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。
Score Listener に関するイベント監視を担当します。(root) パッケージの中でも 485 行規模の中核クラスで、運用中の主ループ・スケジューラが一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。
ScoreListeneronPlayerDeathonMobDamageonMobDeathextractScoringDamageisRealScorePlayerscrubServantAliasScoreinFantasiafantasiaMobGameActive初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。
イベント受理、定期監視、判定、進行更新など、実際に挙動を生む中心ロジックです。
Bukkit イベントや内部イベントを受けたあと、どの状態を更新するかをまとめています。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public ScoreListener(JavaPlugin plugin, ScoreManager manager, ScoreService service, RewardService rewardService, DamageTracker damageTracker, JackpotService jackpotService, MiniJackpotService miniJackpotService, CurrencyService currencyService, EventService eventService, EventRuntimeService eventRuntime, ServerDifficultyService difficultyService, LevelServantService levelServantService) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | 主要呼び出しなし |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| ScoreListener | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| extractScoringDamage | private | メソッド | newDamage のうち、「スコアに反映してよいダメージ量」を返す。 |
| isRealScorePlayer | private | メソッド | スコア対象として扱っていい「本物のプレイヤー」かどうか。 |
| scrubServantAliasScore | private | メソッド | scrubServantAliasScore の主要処理を担当します。 |
| inFantasia | private | メソッド | inFantasia の主要処理を担当します。 |
| fantasiaMobGameActive | private | メソッド | fantasiaMobGameActive の主要処理を担当します。 |
| getFsScore | private | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| addFsScore | private | メソッド | addFsScore の主要処理を担当します。 |
| finalizeFsOnDeath | private | メソッド | finalizeFsOnDeath の主要処理を担当します。 |
| isUltraDiff | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| onPlayerDeath | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onMobDamage | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onMobDeath | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| calcMultiplier | private | メソッド | calcMultiplier の主要処理を担当します。 |
public ScoreListener(JavaPlugin plugin, ScoreManager manager, ScoreService service, RewardService rewardService, DamageTracker damageTracker, JackpotService jackpotService, MiniJackpotService miniJackpotService, CurrencyService currencyService, EventService eventService, EventRuntimeService eventRuntime, ServerDifficultyService difficultyService, LevelServantService levelServantService)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
JavaPlugin pluginScoreManager managerScoreService serviceRewardService rewardServiceDamageTracker damageTrackerJackpotService jackpotServiceMiniJackpotService miniJackpotServiceCurrencyService currencyServiceEventService eventServiceEventRuntimeService eventRuntimeServerDifficultyService difficultyServiceLevelServantService levelServantServiceなし
private double extractScoringDamage(LivingEntity target, double newDamage)newDamage のうち、「スコアに反映してよいダメージ量」を返す。
LivingEntity targetdouble newDamageなし
private boolean isRealScorePlayer(Player p)スコア対象として扱っていい「本物のプレイヤー」かどうか。
Player pなし
private void scrubServantAliasScore(String servantScoreName)scrubServantAliasScore の主要処理を担当します。
String servantScoreNameなし
private static boolean inFantasia(Player p)inFantasia の主要処理を担当します。
Player pなし
private static boolean fantasiaMobGameActive(Player p)fantasiaMobGameActive の主要処理を担当します。
Player pなし
private static long getFsScore(Player p)必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
Player pなし
private static void addFsScore(Player p, long delta)addFsScore の主要処理を担当します。
Player plong deltaなし
private static void finalizeFsOnDeath(Player p)finalizeFsOnDeath の主要処理を担当します。
Player pなし
private boolean isUltraDiff()条件判定を行い、後続処理の分岐に使える真偽値を返します。
なし
public void onPlayerDeath(PlayerDeathEvent e)イベント発生時の分岐と後続処理を担当します。
PlayerDeathEvent eなし
public void onMobDamage(EntityDamageByEntityEvent e)イベント発生時の分岐と後続処理を担当します。
EntityDamageByEntityEvent eなし
public void onMobDeath(EntityDeathEvent e)イベント発生時の分岐と後続処理を担当します。
EntityDeathEvent eなし
private int calcMultiplier(Entity entity)calcMultiplier の主要処理を担当します。
Entity entityなし
onMobDamage → getDamager → resolveOwnerIdForPotentialServant → getName → scrubServantAliasScore → getPlayeronMobDeath → getEntity → getKiller → resolveOwnerIdForPotentialServant → getName → scrubServantAliasScoreonPlayerDeath → getEntity → currentTimeMillis → getUniqueId → setDeathMessage → blockedisRealScorePlayer → resolveOwnerIdForPotentialServant → saveScore → getName → isTrackedServant → hasMetadataextractScoringDamage → getMaxHealth → getUniqueId → getOrDefault → min