Ultimate Vex Manager に関する管理・集約処理を担当します。

67Fields
1Constructors
89Methods
2539Lines
Package
com.example.rankingplugin.boss.ultimatevex
Source
boss/ultimatevex/UltimateVexManager.java
Kind
class
Roles
イベント駆動非同期 / スケジューラ初期化 / ブートストラップ集約 / 制御
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。 全クラス章立てガイドを見る
サブシステム横断ガイドもあります。 このクラスを含む上位の流れは こちらの処理遷移図ページ から読むと把握しやすいです。

クラス説明

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

責務と見どころ

重点クラスの詳細解説

ボスの出現スケジュール、特殊攻撃、ミニオン波、与ダメ集計、報酬配布、ボスバー、チャンク固定までが一体化したレイド管理クラスです。時間軸の概念が多く、流れで読む必要があります。

最初に追う読む順番

  1. startSchedulers
    定期監視の入口です。時間窓管理の開始点になります。
  2. ensureUvRandomScheduledSpawn
    当日分の出現予定をどこで確定するかを確認します。
  3. checkTimeAndSpawnOrDespawn
    現在時刻に応じた spawn/despawn 判定の本体です。
  4. trySpawnNewBossUtc
    実際のスポーン処理で、座標やワールド選択、ローカル状態初期化が入ります。
  5. onBossAnyDamage
    被ダメから特殊フェーズ移行、ボスバー更新、報酬計測へつながる要です。
  6. spawnMinionWave
    ゲート/フェーズ進行で何が増えるかを追います。
  7. startSpecialsTask
    戦闘中の特殊攻撃スケジューラです。
  8. trySpecialAttack
    どの特殊行動を発火するかの分岐点です。
  9. handleDeathOrTimeup
    撃破時と時間切れ時の後始末・報酬付与の出口です。
  10. shutdown
    タスク停止とチャンク固定解除の最終出口です。

内部サブシステムの地図

フェーズ進行と特殊攻撃

通常攻撃ではなく、複数のスキルを時間/状況に応じて切り替える部分です。戦闘の派手さはこの塊にあります。

ミニオンと報酬精算

ミニオンの生成・死亡監視・ダメージバッチ保存・報酬抽選をまとめます。討伐後の公平性はここで決まります。

代表フロー詳解

被弾からフェーズ進行へ

  1. onBossAnyDamage
  2. recordDamage
  3. updateBossBar
  4. computeBypassFactor / dealPercentDamageScaled
  5. spawnMinionWave / 特殊行動条件更新

被ダメは見た目の HP 更新だけでなく、後段の特殊攻撃や報酬計算にも効きます。HP 系調整はこの流れを丸ごと意識してください。

変更時の注意点

フィールド

VisibilityTypeName役割
privateJavaPluginpluginプラグイン本体参照です。
privateScoreServicescoreService関連サービスへの参照です。
privateUltimateVexDaodaodao の状態を保持します。
privateVexlocalVexlocalVex の状態を保持します。
privatelongcurrentSpawnIdcurrentSpawnId の状態を保持します。
privateintlevellevel の状態を保持します。
privatelongmaxHealthmaxHealth の状態を保持します。
privatelongcurrentHealthcurrentHealth の状態を保持します。
privateLocationspawnLocationspawnLocation の状態を保持します。
privateBossBarbossBarbossBar の状態を保持します。
privateBukkitTaskbossBarTask非同期処理やスケジューラ制御に使うハンドルです。
privateBukkitTaskstatePollTask非同期処理やスケジューラ制御に使うハンドルです。
privateBukkitTasktimeCheckTask非同期処理やスケジューラ制御に使うハンドルです。
privateBukkitTaskuvSpawnTask非同期処理やスケジューラ制御に使うハンドルです。
privateAtomicBooleanstateSyncInFlightstateSyncInFlight の状態を保持します。
privateAtomicBooleantimeCheckInFlighttimeCheckInFlight の状態を保持します。
privateAtomicBooleanplannedSpawnInFlightplannedSpawnInFlight の状態を保持します。
privateAtomicBooleanminionPollInFlightminionPollInFlight の状態を保持します。
privateAtomicBooleandamageFlushInFlightdamageFlushInFlight の状態を保持します。
privateAtomicBooleandeathInFlightdeathInFlight の状態を保持します。
privateAtomicBooleanacceptingDamageacceptingDamage の状態を保持します。
privateMap<UUID, LongAdder>pendingDamagependingDamage の状態を保持します。
privateMap<UUID, String>lastNameByUuidlastNameByUuid の状態を保持します。
privateSet<UUID>retaliateTargetsretaliateTargets の状態を保持します。
privateMap<UUID, LongAdder>totalDamageLocaltotalDamageLocal の状態を保持します。
privateMap<UUID, BossBar>personalBossBarspersonalBossBars の状態を保持します。
privateBukkitTaskdamageFlushTask非同期処理やスケジューラ制御に使うハンドルです。
privatebooleanchunkForcedchunkForced の状態を保持します。
privateint forcedChunkX,forcedChunkZforcedChunkZ の状態を保持します。
privateWorldforcedWorldforcedWorld の状態を保持します。
privateSet<UUID>minionIdsminionIds の状態を保持します。
privatebooleanshieldActiveshieldActive の状態を保持します。
privateintlastGateBucketlastGateBucket の状態を保持します。
privateintlocalSpawnedGateIndexlocalSpawnedGateIndex の状態を保持します。
privateintgateRequiredKillsgateRequiredKills の状態を保持します。
privateintgateKillCountgateKillCount の状態を保持します。
privateStringTAG_UVTAG_UV の状態を保持します。
privateNamespacedKeyKEY_UV_DATEKEY_UV_DATE の状態を保持します。
privateNamespacedKeyKEY_MINION_SLOTKEY_MINION_SLOT の状態を保持します。
privateNamespacedKeyKEY_MINION_GATEKEY_MINION_GATE の状態を保持します。
privatedoubleWAVE_SCALE_PER_BUCKETWAVE_SCALE_PER_BUCKET の状態を保持します。
privateintWAVE_MAX_PER_SERVERWAVE_MAX_PER_SERVER の状態を保持します。
privatejava.util.Map<Integer, UUID>minionSlotToUuidminionSlotToUuid の状態を保持します。
privatelonglastSeenDeathIdlastSeenDeathId の状態を保持します。
privateBukkitTaskminionDeathPollTask非同期処理やスケジューラ制御に使うハンドルです。
privateintspecialCooldownTicksspecialCooldownTicks の状態を保持します。
privatejava.util.RandomskillRandskillRand の状態を保持します。
privateBukkitTaskspecialTask非同期処理やスケジューラ制御に使うハンドルです。
privateChunkforcedChunkforcedChunk の状態を保持します。
privatebooleanusingPluginTicketプラグイン本体参照です。
privateBukkitTaskantiStuckTask非同期処理やスケジューラ制御に使うハンドルです。
privatedoubleBYPASS_PER_10PCT_MISSINGBYPASS_PER_10PCT_MISSING の状態を保持します。
privatebooleanBYPASS_ABSORPTION_FIRSTBYPASS_ABSORPTION_FIRST の状態を保持します。
privatebooleanDEBUG_MIXED_PERCENTDEBUG_MIXED_PERCENT の状態を保持します。
privateStringTAG_UV_MINIONTAG_UV_MINION の状態を保持します。
privateLocalTimeSPAWN_STARTSPAWN_START の状態を保持します。
privateLocalTimeDESPAWN_ATDESPAWN_AT の状態を保持します。
privateZoneIdJSTJST の状態を保持します。
privatejava.time.LocalTimeUV_RANDOM_FROMUV_RANDOM_FROM の状態を保持します。
privatejava.time.LocalTimeUV_RANDOM_TOUV_RANDOM_TO の状態を保持します。
privateintUV_AOE_BUDGET_PER_TICKUV_AOE_BUDGET_PER_TICK の状態を保持します。
privatebooleanUV_CARRY_TO_TOMORROW_IF_MISSEDUV_CARRY_TO_TOMORROW_IF_MISSED の状態を保持します。
privateintUV_MIN_RUV_MIN_R の状態を保持します。
privateintUV_MAX_RUV_MAX_R の状態を保持します。
privateStringMETA_UV_INTERNALMETA_UV_INTERNAL の状態を保持します。
privatejava.util.Set<Material>CREATIVE_ONLYCREATIVE_ONLY の状態を保持します。
privatejava.util.List<Material>rewardPoolrewardPool の状態を保持します。

コンストラクタ / 初期化

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

メソッド索引

NameVisibilityKind説明
specialBossesEnabledprivateメソッドspecialBossesEnabled の主要処理を担当します。
UltimateVexManagerpublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
startSchedulersprivateメソッド初期化と各種登録を行い、機能を有効化します。
shutdownpublicメソッド動作中の処理やリソースを安全に停止・解放します。
forEachPlayerBatchedprivateメソッドforEachPlayerBatched の主要処理を担当します。
computeBypassFactorprivateメソッドヴェックスの残HPから「防具/耐性の影響をどれだけ無視するか(0.
dealPercentDamageScaledprivateメソッドdealPercentDamageScaled の主要処理を担当します。
onJoinpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onQuitpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onWorldUnloadpublicイベント処理イベント発生時の分岐と後続処理を担当します。
isSpawnWindowprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
isAliveWindowprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
isOutsideSpawnWindowprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
isAfterDespawnTimeprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
pickRandomSafeAroundSpawnprivateメソッドpickRandomSafeAroundSpawn の主要処理を担当します。
ensureUvRandomScheduledSpawnprivateメソッド必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
pickRandomWindowForDayprivateメソッドpickRandomWindowForDay の主要処理を担当します。
checkTimeAndSpawnOrDespawnprivateメソッドcheckTimeAndSpawnOrDespawn の主要処理を担当します。
trySpawnNewBossUtcprivateメソッドtrySpawnNewBossUtc の主要処理を担当します。
onBossAnyDamagepublicイベント処理イベント発生時の分岐と後続処理を担当します。
despawnRemainingMinionsprivateメソッドdespawnRemainingMinions の主要処理を担当します。
scheduleMorningCleanupprivateメソッドJSTの次の 06:00 に全UltimateVexを確実に消し、タスクを再登録する
purgeOldUltimateVexesprivateメソッド残骸掃除。
trySpawnNewBossprivateメソッドtrySpawnNewBoss の主要処理を担当します。
till6amBaseDateprivateメソッドtill6amBaseDate の主要処理を担当します。
rollLevelprivateメソッドrollLevel の主要処理を担当します。
calcMaxHealthprivateメソッドcalcMaxHealth の主要処理を担当します。
resolveSpawnLocationWithFallbackprivateメソッドresolveSpawnLocationWithFallback の主要処理を担当します。
computeSafeSpawnprivateメソッドcomputeSafeSpawn の主要処理を担当します。
safeAtprivateメソッドsafeAt の主要処理を担当します。
raiseUntilAirColumnprivateメソッドraiseUntilAirColumn の主要処理を担当します。
isWaterishprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
isDangerousprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
syncFromDatabaseprivateメソッドsyncFromDatabase の主要処理を担当します。
tryStartGateAsyncprivateメソッドtryStartGateAsync の主要処理を担当します。
spawnLocalVexprivateメソッドspawnLocalVex の主要処理を担当します。
startAntiStuckWatchprivateメソッド初期化と各種登録を行い、機能を有効化します。
clearLocalBossprivateメソッドclearLocalBoss の主要処理を担当します。
applyChunkForceprivateメソッドapplyChunkForce の主要処理を担当します。
clearChunkForceprivateメソッドclearChunkForce の主要処理を担当します。
onBossTargetpublicイベント処理イベント発生時の分岐と後続処理を担当します。
onChunkUnloadpublicイベント処理イベント発生時の分岐と後続処理を担当します。
createBossBarprivateメソッドcreateBossBar の主要処理を担当します。
clearBossBarprivateメソッドclearBossBar の主要処理を担当します。
updateBossBarprivateメソッド状態を永続化または更新し、最新状態へ反映します。
resolveBossBarLocationprivateメソッドresolveBossBarLocation の主要処理を担当します。
computePlannedWaveCountprivateメソッドcomputePlannedWaveCount の主要処理を担当します。
spawnMinionWaveprivateメソッドspawnMinionWave の主要処理を担当します。
scaleCountsWithRemainderprivateメソッドscaleCountsWithRemainder の主要処理を担当します。
addManyprivateメソッドaddMany の主要処理を担当します。
ringLocationprivateメソッドringLocation の主要処理を担当します。
startSpecialsTaskprivateメソッド初期化と各種登録を行い、機能を有効化します。
stopSpecialsTaskprivateメソッド動作中の処理やリソースを安全に停止・解放します。
trySpecialAttackprivateメソッドtrySpecialAttack の主要処理を担当します。
isBoatLockImmunityActiveprivateメソッド条件判定を行い、後続処理の分岐に使える真偽値を返します。
shouldForceBoatLockGuardprivateメソッドshouldForceBoatLockGuard の主要処理を担当します。
releaseImmobilizationAndReengageprivateメソッドreleaseImmobilizationAndReengage の主要処理を担当します。
playCombatAuraprivateメソッドplayCombatAura の主要処理を担当します。
performPressureSkillprivateメソッドperformPressureSkill の主要処理を担当します。
feintRushComboprivateメソッドfeintRushCombo の主要処理を担当します。
phantomSpikeVolleyprivateメソッドphantomSpikeVolley の主要処理を担当します。
performLv50ChaosSkillprivateメソッドperformLv50ChaosSkill の主要処理を担当します。
abyssalVerdictprivateメソッド予告後、範囲内のプレイヤーを「トーテム貫通」で処刑する(setHealth(0))
voidNovaprivateメソッド超広範囲の奈落割合ダメージ(防具貫通)。
beamSweepprivateメソッド視界に入ったプレイヤーを薙ぎ払うビーム(複数ヒット)
fireStormOrBurstprivateメソッドfireStormOrBurst の主要処理を担当します。
nearbyPlayersprivateメソッドnearbyPlayers の主要処理を担当します。
lightningStormprivateメソッドlightningStorm の主要処理を担当します。
shadowBurstprivateメソッドshadowBurst の主要処理を担当します。
telegraphprivateメソッドtelegraph の主要処理を担当します。
dealPercentDamageprivateメソッドdealPercentDamage の主要処理を担当します。
vexBeamprivateメソッド直線ビーム(見た目だけを先に出し、最後にまとめて%ダメージ)
expandingRingAttackprivateメソッド予告→拡大リング→ヒット(半径に入ったら%ダメ)
shadowStepSlashprivateメソッドテレポート斬り:ターゲット背後へ瞬間移動→小範囲ヒット
onTargetpublicイベント処理イベント発生時の分岐と後続処理を担当します。
findNearestPlayerprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
findNearestAllowedTargetprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
recordDamageprivateメソッドrecordDamage の主要処理を担当します。
drainPendingDamageSnapshotprivateメソッドdrainPendingDamageSnapshot の主要処理を担当します。
flushDamageBatchAsyncprivateメソッド定期flush:ヒットごとのDB書き込みを止め、一定間隔でまとめて反映。
flushPendingDamageToDbprivateメソッド討伐/時間切れ直前の最終flush(非同期スレッドから呼ぶ想定) 戻り値: applyDamageが返した最新HP(取得できなければ -1)
.bukkit.event.EventHandlerpackageメソッド.bukkit.event.EventHandler の主要処理を担当します。
onMinionDeathpublicイベント処理イベント発生時の分岐と後続処理を担当します。
pollMinionDeathsprivateメソッドpollMinionDeaths の主要処理を担当します。
buildRewardPoolprivateメソッド表示用または出力用のデータを組み立てます。
rollRandomRewardsprivateメソッドrollRandomRewards の主要処理を担当します。
giveRewardsprivateメソッドgiveRewards の主要処理を担当します。
getAttackerprivateメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
handleDeathOrTimeupprivateメソッド入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。

メソッド詳細

specialBossesEnabled

メソッドprivate
private boolean specialBossesEnabled()

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

引数

throws

なし

主要な呼び出し順

getConfiggetBoolean

UltimateVexManager

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

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

引数

throws

なし

主要な呼び出し順

specialBossesEnabledgetLoggerinfogetPluginManagerregisterEventsstartSchedulersensureUvRandomScheduledSpawnpurgeOldUltimateVexes

startSchedulers

メソッドprivate
private void startSchedulers()

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

引数

throws

なし

主要な呼び出し順

getSchedulerrunTaskTimercancelrunTaskTimerAsynchronously

shutdown

メソッドpublic
public void shutdown()

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

引数

throws

なし

主要な呼び出し順

cancelflushDamageBatchAsyncstopSpecialsTaskclearBossBarclearChunkForcedespawnRemainingMinionsisDeadremove

forEachPlayerBatched

メソッドprivate
private void forEachPlayerBatched(List<Player> players, Consumer<Player> action)

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

引数

throws

なし

主要な呼び出し順

isEmptyiteratorrunhasNextnextisOnlineisDeadgetWorld

computeBypassFactor

メソッドprivate
private double computeBypassFactor()

ヴェックスの残HPから「防具/耐性の影響をどれだけ無視するか(0.

引数

throws

なし

主要な呼び出し順

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

dealPercentDamageScaled

メソッドprivate
private void dealPercentDamageScaled(Player p, double basePercent)

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

引数

throws

なし

主要な呼び出し順

ofNullablegetAttributemapgetValueorElsemaxgetAbsorptionAmountmin

onJoin

イベント処理public
public void onJoin(org.bukkit.event.player.PlayerJoinEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

addPlayergetPlayer

onQuit

イベント処理public
public void onQuit(org.bukkit.event.player.PlayerQuitEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

removePlayergetPlayer

onWorldUnload

イベント処理public
public void onWorldUnload(org.bukkit.event.world.WorldUnloadEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getWorldequalsclearChunkForce

isSpawnWindow

メソッドprivate
private boolean isSpawnWindow(LocalTime t)

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

引数

throws

なし

主要な呼び出し順

isBefore

isAliveWindow

メソッドprivate
private boolean isAliveWindow(LocalTime t)

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

引数

throws

なし

主要な呼び出し順

isBefore

isOutsideSpawnWindow

メソッドprivate
private boolean isOutsideSpawnWindow(LocalTime t)

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

引数

throws

なし

主要な呼び出し順

isAliveWindow

isAfterDespawnTime

メソッドprivate
private boolean isAfterDespawnTime(LocalTime t)

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

引数

throws

なし

主要な呼び出し順

isBefore

pickRandomSafeAroundSpawn

メソッドprivate
private org.bukkit.Location pickRandomSafeAroundSpawn(org.bukkit.World w, int minR, int maxR)

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

引数

throws

なし

主要な呼び出し順

getSpawnLocationcurrentnextDoublemaxgetXcosgetZsin

ensureUvRandomScheduledSpawn

メソッドprivate
private void ensureUvRandomScheduledSpawn()

必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。

引数

throws

なし

主要な呼び出し順

compareAndSetgetSchedulerrunTaskAsynchronouslyloadPlannedWindowUtcorElsenowatZonewithZoneSameInstant

pickRandomWindowForDay

メソッドprivate
private java.time.ZonedDateTime[] pickRandomWindowForDay(java.time.LocalDate dayJst)

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

引数

throws

なし

主要な呼び出し順

toEpochSecondcurrentnextLongofInstantofEpochSecondplusDayswithHourwithMinute

checkTimeAndSpawnOrDespawn

メソッドprivate
private void checkTimeAndSpawnOrDespawn()

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

引数

throws

なし

主要な呼び出し順

ensureUvRandomScheduledSpawnnowtoLocalTimecompareAndSetgetSchedulerrunTaskAsynchronouslyloadStaterunTask

trySpawnNewBossUtc

メソッドprivate
private void trySpawnNewBossUtc(LocalDateTime spawnUtc, LocalDateTime expireUtc)

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

引数

throws

なし

主要な呼び出し順

getWorldsstreamfiltergetEnvironmentfindFirstorElsepickRandomSafeAroundSpawnrollLevel

onBossAnyDamage

イベント処理public
public void onBossAnyDamage(org.bukkit.event.entity.EntityDamageEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getEntitygetUniqueIdequalsgetAttackergetDamagersetCancelled

despawnRemainingMinions

メソッドprivate
private void despawnRemainingMinions()

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

引数

throws

なし

主要な呼び出し順

getEntityisValidremoveclear

scheduleMorningCleanup

メソッドprivate
private void scheduleMorningCleanup()

JSTの次の 06:00 に全UltimateVexを確実に消し、タスクを再登録する

引数

throws

なし

主要な呼び出し順

nowwithHourwithMinutewithSecondwithNanoisBeforeplusDaysbetween

purgeOldUltimateVexes

メソッドprivate
private void purgeOldUltimateVexes(boolean forceAll)

残骸掃除。

引数

throws

なし

主要な呼び出し順

nowtoStringisAliveWindowgetWorldsgetEntitiesByClassgetScoreboardTagscontainsgetPersistentDataContainer

trySpawnNewBoss

メソッドprivate
private void trySpawnNewBoss(LocalDateTime now)

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

引数

throws

なし

主要な呼び出し順

loadStategetWorldsstreamfiltergetEnvironmentfindFirstorElsegetSpawnLocation

till6amBaseDate

メソッドprivate
private LocalDate till6amBaseDate(LocalDateTime now)

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

引数

throws

なし

主要な呼び出し順

toLocalTimeisBeforetoLocalDateplusDays

rollLevel

メソッドprivate
private int rollLevel()

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

引数

throws

なし

主要な呼び出し順

currentnextIntmax

calcMaxHealth

メソッドprivate
private long calcMaxHealth(int level)

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

引数

throws

なし

主要な呼び出し順

max

resolveSpawnLocationWithFallback

メソッドprivate
private Location resolveSpawnLocationWithFallback(UltimateVexDao.UltimateVexState st)

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

引数

throws

なし

主要な呼び出し順

toLocationgetWorldgetWorldsstreamfiltergetEnvironmentfindFirstorElse

computeSafeSpawn

メソッドprivate
private Location computeSafeSpawn(Location seed)

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

引数

throws

なし

主要な呼び出し順

getWorldgetBlockXgetBlockZsafeAtabsgetXmingetMaxHeight

safeAt

メソッドprivate
private Location safeAt(World w, int x, int z)

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

引数

throws

なし

主要な呼び出し順

getHighestBlockYAtgetBlockAtgetTypeisSolidisWaterishisDangerousmingetMaxHeight

raiseUntilAirColumn

メソッドprivate
private int raiseUntilAirColumn(World w, int x, int z, int startY, int needAir, int maxRaise)

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

引数

throws

なし

主要な呼び出し順

getBlockAtisPassablegetMaxHeight

isWaterish

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

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

引数

throws

なし

主要な呼び出し順

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

isDangerous

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

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

引数

throws

なし

主要な呼び出し順

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

syncFromDatabase

メソッドprivate
private void syncFromDatabase()

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

引数

throws

なし

主要な呼び出し順

compareAndSetgetSchedulerrunTaskAsynchronouslyloadStaterunTaskclearLocalBossmaxresolveSpawnLocationWithFallback

tryStartGateAsync

メソッドprivate
private void tryStartGateAsync(long spawnId, int gateIndex, int requiredKills)

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

引数

throws

なし

主要な呼び出し順

getSchedulerrunTaskAsynchronouslytryStartGategetLoggerwarninggetMessagerunTaskspawnMinionWave

spawnLocalVex

メソッドprivate
private void spawnLocalVex()

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

引数

throws

なし

主要な呼び出し順

isDeadremovestopSpecialsTaskgetLoggerwarninggetWorldspawnsetCustomNameVisible

startAntiStuckWatch

メソッドprivate
private void startAntiStuckWatch()

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

引数

throws

なし

主要な呼び出し順

cancelgetSchedulerrunTaskTimerisDeadshouldForceBoatLockGuardreleaseImmobilizationAndReengagegetLocationgetBlock

clearLocalBoss

メソッドprivate
private void clearLocalBoss()

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

引数

throws

なし

主要な呼び出し順

isDeadremovestopSpecialsTaskclearBossBarclearChunkForcedespawnRemainingMinionsclearsize

applyChunkForce

メソッドprivate
private void applyChunkForce(Location loc)

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

引数

throws

なし

主要な呼び出し順

clearChunkForcegetWorldgetChunkAtgetXgetZloadaddPluginChunkTicketsetChunkForceLoaded

clearChunkForce

メソッドprivate
private void clearChunkForce()

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

引数

throws

なし

主要な呼び出し順

removePluginChunkTicketsetChunkForceLoadedgetXgetZ

onBossTarget

イベント処理public
public void onBossTarget(org.bukkit.event.entity.EntityTargetLivingEntityEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getEntitygetUniqueIdequalsgetTargetcontainssetCancelledsetTarget

onChunkUnload

イベント処理public
public void onChunkUnload(org.bukkit.event.world.ChunkUnloadEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getWorldequalsgetChunkgetXgetZsetChunkForceLoadedisLoadedload

createBossBar

メソッドprivate
private void createBossBar()

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

引数

throws

なし

主要な呼び出し順

cancelgetSchedulerrunTaskTimer

clearBossBar

メソッドprivate
private void clearBossBar()

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

引数

throws

なし

主要な呼び出し順

cancelvaluesremoveAllsetVisibleclear

updateBossBar

メソッドprivate
private void updateBossBar()

状態を永続化または更新し、最新状態へ反映します。

引数

throws

なし

主要な呼び出し順

resolveBossBarLocationnowwithHourwithMinutewithSecondwithNanoisBeforeplusDays

resolveBossBarLocation

メソッドprivate
private Location resolveBossBarLocation()

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

引数

throws

なし

主要な呼び出し順

isValidisDeadgetLocation

computePlannedWaveCount

メソッドprivate
private int computePlannedWaveCount(int level, int gateIndex)

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

引数

throws

なし

主要な呼び出し順

maxminround

spawnMinionWave

メソッドprivate
private void spawnMinionWave(int level, int gateIndex)

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

引数

throws

なし

主要な呼び出し順

getWorldclearmaxminroundscaleCountsWithRemainderaddManysize

scaleCountsWithRemainder

メソッドprivatestatic
private static int[] scaleCountsWithRemainder(int[] base, double scale, int targetTotal)

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

引数

throws

なし

主要な呼び出し順

floormaxsortcompare

addMany

メソッドprivatestatic
private static <T> void addMany(java.util.List<T> list, T clazz, int count)

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

引数

throws

なし

主要な呼び出し順

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

ringLocation

メソッドprivate
private Location ringLocation(Location center, double angle, double radius)

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

引数

throws

なし

主要な呼び出し順

roundgetXcosgetZsinmaxgetWorldgetHighestBlockYAt

startSpecialsTask

メソッドprivate
private void startSpecialsTask()

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

引数

throws

なし

主要な呼び出し順

stopSpecialsTaskgetSchedulerrunTaskTimerisDeadmaxminshouldForceBoatLockGuardreleaseImmobilizationAndReengage

stopSpecialsTask

メソッドprivate
private void stopSpecialsTask()

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

引数

throws

なし

主要な呼び出し順

cancel

trySpecialAttack

メソッドprivate
private void trySpecialAttack(double hpRatio)

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

引数

throws

なし

主要な呼び出し順

isDeadreleaseImmobilizationAndReengagesetColorgetSchedulerrunTaskLaterperformPressureSkillperformLv50ChaosSkillnextDouble

isBoatLockImmunityActive

メソッドprivate
private boolean isBoatLockImmunityActive()

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

引数

throws

なし

主要な呼び出し順

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

shouldForceBoatLockGuard

メソッドprivate
private boolean shouldForceBoatLockGuard()

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

引数

throws

なし

主要な呼び出し順

isBoatLockImmunityActive

releaseImmobilizationAndReengage

メソッドprivate
private void releaseImmobilizationAndReengage(boolean removeNearbyVehicles, boolean aggressiveReengage, String reason)

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

引数

throws

なし

主要な呼び出し順

isDeadgetLocationclonegetVehicleejectleaveVehicleremovegetNearbyEntities

playCombatAura

メソッドprivate
private void playCombatAura(double hpRatio)

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

引数

throws

なし

主要な呼び出し順

isDeadgetWorldgetLocationclonespawnParticlenextDoubleplaySound

performPressureSkill

メソッドprivate
private void performPressureSkill(double hpRatio)

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

引数

throws

なし

主要な呼び出し順

isDeadfindNearestPlayergetLocationnextDoublefeintRushCombophantomSpikeVolley

feintRushCombo

メソッドprivate
private void feintRushCombo(Player target, int phase)

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

引数

throws

なし

主要な呼び出し順

isDeadgetWorldgetLocationclonetelegraphgetSchedulerrunTaskLaterisOnline

phantomSpikeVolley

メソッドprivate
private void phantomSpikeVolley(Player target, int phase)

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

引数

throws

なし

主要な呼び出し順

isDeadgetEyeLocationtelegraphgetSchedulerrunTaskLaterisOnlineclonenextDouble

performLv50ChaosSkill

メソッドprivate
private void performLv50ChaosSkill()

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

引数

throws

なし

主要な呼び出し順

isDeadnextDoubleabyssalVerdictvoidNovabeamSweep

abyssalVerdict

メソッドprivate
private void abyssalVerdict(double radius, long delayTicks)

予告後、範囲内のプレイヤーを「トーテム貫通」で処刑する(setHealth(0))

引数

throws

なし

主要な呼び出し順

getLocationclonetelegraphroundgetWorldspawnParticlegetSchedulerrunTaskLater

voidNova

メソッドprivate
private void voidNova(double radius, double percent, long delayTicks)

超広範囲の奈落割合ダメージ(防具貫通)。

引数

throws

なし

主要な呼び出し順

getLocationclonetelegraphroundgetWorldspawnParticlegetSchedulerrunTaskLater

beamSweep

メソッドprivate
private void beamSweep(double radius, double percentPerHit, long durationTicks)

視界に入ったプレイヤーを薙ぎ払うビーム(複数ヒット)

引数

throws

なし

主要な呼び出し順

getLocationclonetelegraphroundmingetWorldspawnParticlemax

fireStormOrBurst

メソッドprivate
private void fireStormOrBurst(int tier, int fxTier)

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

引数

throws

なし

主要な呼び出し順

isDeadnextBooleangetWorldgetPlayerstelegraphgetLocationexpandingRingAttackfindNearestPlayer

nearbyPlayers

メソッドprivate
private java.util.List<Player> nearbyPlayers(Location loc, double r)

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

引数

throws

なし

主要な呼び出し順

getWorldgetPlayersisDeadgetLocationdistanceSquared

lightningStorm

メソッドprivate
private void lightningStorm(double minPct, double maxPct, int tier)

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

引数

throws

なし

主要な呼び出し順

getWorldgetPlayersisDeadequalsstrikeLightningEffectgetLocationnextDoubleclone

shadowBurst

メソッドprivate
private void shadowBurst(int radius, double minPct, double maxPct)

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

引数

throws

なし

主要な呼び出し順

getWorldgetLocationspawnParticleplaySoundnearbyPlayersnextDoubledealPercentDamagetoVector

telegraph

メソッドprivate
private void telegraph(Location c, int particles, Sound s)

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

引数

throws

なし

主要な呼び出し順

getWorldspawnParticleplaySound

dealPercentDamage

メソッドprivate
private void dealPercentDamage(Player p, double percent)

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

引数

throws

なし

主要な呼び出し順

ofNullablegetAttributemapgetValueorElsemaxdamage

vexBeam

メソッドprivate
private void vexBeam(Location from, org.bukkit.util.Vector dir, double len, int steps, Particle particle, Sound sound, java.util.function.Predicate<Player> hitTest, java.util.function.Consumer<Player> onHit)

直線ビーム(見た目だけを先に出し、最後にまとめて%ダメージ)

引数

throws

なし

主要な呼び出し順

getWorldplaySoundclonenormalizemultiplymaxspawnParticlegetPlayers

expandingRingAttack

メソッドprivate
private void expandingRingAttack(Location center, double startR, double endR, int ticks, Particle particle, Sound teleSound, Sound hitSound, double pctMin, double pctMax)

予告→拡大リング→ヒット(半径に入ったら%ダメ)

引数

throws

なし

主要な呼び出し順

getWorldplaySoundrunisDeadcancelmaxclonecos

shadowStepSlash

メソッドprivate
private void shadowStepSlash(Player target, double radius, double pctMin, double pctMax)

テレポート斬り:ターゲット背後へ瞬間移動→小範囲ヒット

引数

throws

なし

主要な呼び出し順

isDeadgetLocationclonegetDirectionnormalizemultiplysetYmax

onTarget

イベント処理public
public void onTarget(EntityTargetLivingEntityEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getEntitygetUniqueIdequalsgetTargetfindNearestAllowedTargetgetLocationsetTargetsetCancelled

findNearestPlayer

メソッドprivate
private Player findNearestPlayer(Location loc, double range)

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

引数

throws

なし

主要な呼び出し順

getWorldgetPlayersgetLocationdistanceSquared

findNearestAllowedTarget

メソッドprivate
private LivingEntity findNearestAllowedTarget(Location loc, double range)

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

引数

throws

なし

主要な呼び出し順

findNearestPlayergetEntityisDeadgetWorldgetLocationdistanceSquared

recordDamage

メソッドprivate
private void recordDamage(UUID uuid, String name, long dmg)

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

引数

throws

なし

主要な呼び出し順

isBlankcomputeIfAbsent

drainPendingDamageSnapshot

メソッドprivate
private Map<UUID, Long> drainPendingDamageSnapshot()

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

引数

throws

なし

主要な呼び出し順

forEachsumThenResetkeySetsumremove

flushDamageBatchAsync

メソッドprivate
private void flushDamageBatchAsync()

定期flush:ヒットごとのDB書き込みを止め、一定間隔でまとめて反映。

引数

throws

なし

主要な呼び出し順

clearcompareAndSetdrainPendingDamageSnapshotisEmptygetSchedulerrunTaskAsynchronouslyentrySetgetKey

flushPendingDamageToDb

メソッドprivate
private long flushPendingDamageToDb(long spawnId)

討伐/時間切れ直前の最終flush(非同期スレッドから呼ぶ想定) 戻り値: applyDamageが返した最新HP(取得できなければ -1)

引数

throws

なし

主要な呼び出し順

drainPendingDamageSnapshotisEmptyentrySetgetKeygetValuegetOrDefaulttoStringapplyDamage

.bukkit.event.EventHandler

メソッドpackage
.bukkit.event.EventHandler(priority = org.bukkit.event.EventPriority.NORMAL, ignoreCancelled = true) public void onDamage(org.bukkit.event.entity.EntityDamageByEntityEvent e)

.bukkit.event.EventHandler の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

containsgetDamagergetUniqueIdgetEntitysetCancelledgetAttackerequalshasMetadata

onMinionDeath

イベント処理public
public void onMinionDeath(org.bukkit.event.entity.EntityDeathEvent e)

イベント発生時の分岐と後続処理を担当します。

引数

throws

なし

主要な呼び出し順

getEntitygetUniqueIdgetScoreboardTagscontainsgetDropsclearremovegetPersistentDataContainer

pollMinionDeaths

メソッドprivate
private void pollMinionDeaths()

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

引数

throws

なし

主要な呼び出し順

compareAndSetgetSchedulerrunTaskAsynchronouslyemptyListfetchMinionDeathsSincegetLoggerwarninggetMessage

buildRewardPool

メソッドprivate
private java.util.List<Material> buildRewardPool()

表示用または出力用のデータを組み立てます。

引数

throws

なし

主要な呼び出し順

valuesisItemisAircontains

rollRandomRewards

メソッドprivate
private java.util.List<ItemStack> rollRandomRewards(int kinds, int level)

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

引数

throws

なし

主要な呼び出し順

maxminisEmptyshufflecurrentsizenextInt

giveRewards

メソッドprivate
private void giveRewards(Player p, java.util.List<ItemStack> rewards)

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

引数

throws

なし

主要な呼び出し順

isEmptysendMessagesizegetInventoryaddItemvaluesgetWorlddropItemNaturally

getAttacker

メソッドprivate
private Player getAttacker(Entity damager)

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

引数

throws

なし

主要な呼び出し順

getShooter

handleDeathOrTimeup

メソッドprivate
private void handleDeathOrTimeup(boolean timeup)

入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。

引数

throws

なし

主要な呼び出し順

clearLocalBosscompareAndSetgetSchedulerrunTaskAsynchronouslyflushPendingDamageToDbemptyMaploadDamageByPlayermarkDead

代表的な処理フロー

  1. 初期化フロー
    UltimateVexManager → specialBossesEnabled → getLogger → info → getPluginManager → registerEvents
    依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
  2. onChunkUnload フロー
    onChunkUnload → getWorld → equals → getChunk → getX → getZ
    イベント発生時の分岐と後続処理を担当します。
  3. onMinionDeath フロー
    onMinionDeath → getEntity → getUniqueId → getScoreboardTags → contains → getDrops
    イベント発生時の分岐と後続処理を担当します。
  4. onTarget フロー
    onTarget → getEntity → getUniqueId → equals → getTarget → findNearestAllowedTarget
    イベント発生時の分岐と後続処理を担当します。
  5. onBossTarget フロー
    onBossTarget → getEntity → getUniqueId → equals → getTarget → contains
    イベント発生時の分岐と後続処理を担当します。
  6. onBossAnyDamage フロー
    onBossAnyDamage → getEntity → getUniqueId → equals → getAttacker → getDamager
    イベント発生時の分岐と後続処理を担当します。

外部との接点

Web ルート

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

SQL / テーブル

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

関連クラス

補足