出現スケジュールと時間窓
Ultimate Vex は「いつ出るか」を UTC 基準で別に管理しています。実体管理より先に時間窓の概念を読むと全体が掴みやすいです。
Ultimate Vex Manager に関する管理・集約処理を担当します。
com.example.rankingplugin.boss.ultimatevexboss/ultimatevex/UltimateVexManager.javaclassクラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。
ボスの出現スケジュール、特殊攻撃、ミニオン波、与ダメ集計、報酬配布、ボスバー、チャンク固定までが一体化したレイド管理クラスです。時間軸の概念が多く、流れで読む必要があります。
startSchedulersensureUvRandomScheduledSpawncheckTimeAndSpawnOrDespawntrySpawnNewBossUtconBossAnyDamagespawnMinionWavestartSpecialsTasktrySpecialAttackhandleDeathOrTimeupshutdownUltimate Vex は「いつ出るか」を UTC 基準で別に管理しています。実体管理より先に時間窓の概念を読むと全体が掴みやすいです。
スポーン中の実体、HP、場所、個別ボスバー、強制ロードチャンクなど「現在戦っている一体」の状態を束ねます。
通常攻撃ではなく、複数のスキルを時間/状況に応じて切り替える部分です。戦闘の派手さはこの塊にあります。
ミニオンの生成・死亡監視・ダメージバッチ保存・報酬抽選をまとめます。討伐後の公平性はここで決まります。
ensureUvRandomScheduledSpawnpickRandomWindowForDaycheckTimeAndSpawnOrDespawntrySpawnNewBossUtcapplyChunkForcecreateBossBarまず当日枠を決め、その後は監視タスクが現在時刻と比較してスポーンを実行します。時間窓の計算を壊すとボスそのものが現れません。
onBossAnyDamagerecordDamageupdateBossBar被ダメは見た目の HP 更新だけでなく、後段の特殊攻撃や報酬計算にも効きます。HP 系調整はこの流れを丸ごと意識してください。
特殊攻撃は単発メソッド群に見えても、実際にはタスクが定期的に判断して発火させています。演出だけ修正したい場合もこのタスク駆動を忘れないのが重要です。
handleDeathOrTimeupdespawnRemainingMinionsflushPendingDamageToDbbuildRewardPoolrollRandomRewardsgiveRewardsclearLocalBoss戦闘終了時は見た目の掃除と DB 精算が一気に走ります。報酬抜けや重複配布はこの出口で起きやすいです。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public UltimateVexManager(JavaPlugin plugin, ScoreService scoreService, DataSource ds) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | specialBossesEnabled → getLogger → info → getPluginManager → registerEvents → startSchedulers |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| specialBossesEnabled | private | メソッド | specialBossesEnabled の主要処理を担当します。 |
| UltimateVexManager | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| startSchedulers | private | メソッド | 初期化と各種登録を行い、機能を有効化します。 |
| shutdown | public | メソッド | 動作中の処理やリソースを安全に停止・解放します。 |
| forEachPlayerBatched | private | メソッド | forEachPlayerBatched の主要処理を担当します。 |
| computeBypassFactor | private | メソッド | ヴェックスの残HPから「防具/耐性の影響をどれだけ無視するか(0. |
| dealPercentDamageScaled | private | メソッド | dealPercentDamageScaled の主要処理を担当します。 |
| onJoin | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onQuit | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onWorldUnload | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| isSpawnWindow | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| isAliveWindow | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| isOutsideSpawnWindow | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| isAfterDespawnTime | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| pickRandomSafeAroundSpawn | private | メソッド | pickRandomSafeAroundSpawn の主要処理を担当します。 |
| ensureUvRandomScheduledSpawn | private | メソッド | 必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。 |
| pickRandomWindowForDay | private | メソッド | pickRandomWindowForDay の主要処理を担当します。 |
| checkTimeAndSpawnOrDespawn | private | メソッド | checkTimeAndSpawnOrDespawn の主要処理を担当します。 |
| trySpawnNewBossUtc | private | メソッド | trySpawnNewBossUtc の主要処理を担当します。 |
| onBossAnyDamage | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| despawnRemainingMinions | private | メソッド | despawnRemainingMinions の主要処理を担当します。 |
| scheduleMorningCleanup | private | メソッド | JSTの次の 06:00 に全UltimateVexを確実に消し、タスクを再登録する |
| purgeOldUltimateVexes | private | メソッド | 残骸掃除。 |
| trySpawnNewBoss | private | メソッド | trySpawnNewBoss の主要処理を担当します。 |
| till6amBaseDate | private | メソッド | till6amBaseDate の主要処理を担当します。 |
| rollLevel | private | メソッド | rollLevel の主要処理を担当します。 |
| calcMaxHealth | private | メソッド | calcMaxHealth の主要処理を担当します。 |
| resolveSpawnLocationWithFallback | private | メソッド | resolveSpawnLocationWithFallback の主要処理を担当します。 |
| computeSafeSpawn | private | メソッド | computeSafeSpawn の主要処理を担当します。 |
| safeAt | private | メソッド | safeAt の主要処理を担当します。 |
| raiseUntilAirColumn | private | メソッド | raiseUntilAirColumn の主要処理を担当します。 |
| isWaterish | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| isDangerous | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| syncFromDatabase | private | メソッド | syncFromDatabase の主要処理を担当します。 |
| tryStartGateAsync | private | メソッド | tryStartGateAsync の主要処理を担当します。 |
| spawnLocalVex | private | メソッド | spawnLocalVex の主要処理を担当します。 |
| startAntiStuckWatch | private | メソッド | 初期化と各種登録を行い、機能を有効化します。 |
| clearLocalBoss | private | メソッド | clearLocalBoss の主要処理を担当します。 |
| applyChunkForce | private | メソッド | applyChunkForce の主要処理を担当します。 |
| clearChunkForce | private | メソッド | clearChunkForce の主要処理を担当します。 |
| onBossTarget | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| onChunkUnload | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| createBossBar | private | メソッド | createBossBar の主要処理を担当します。 |
| clearBossBar | private | メソッド | clearBossBar の主要処理を担当します。 |
| updateBossBar | private | メソッド | 状態を永続化または更新し、最新状態へ反映します。 |
| resolveBossBarLocation | private | メソッド | resolveBossBarLocation の主要処理を担当します。 |
| computePlannedWaveCount | private | メソッド | computePlannedWaveCount の主要処理を担当します。 |
| spawnMinionWave | private | メソッド | spawnMinionWave の主要処理を担当します。 |
| scaleCountsWithRemainder | private | メソッド | scaleCountsWithRemainder の主要処理を担当します。 |
| addMany | private | メソッド | addMany の主要処理を担当します。 |
| ringLocation | private | メソッド | ringLocation の主要処理を担当します。 |
| startSpecialsTask | private | メソッド | 初期化と各種登録を行い、機能を有効化します。 |
| stopSpecialsTask | private | メソッド | 動作中の処理やリソースを安全に停止・解放します。 |
| trySpecialAttack | private | メソッド | trySpecialAttack の主要処理を担当します。 |
| isBoatLockImmunityActive | private | メソッド | 条件判定を行い、後続処理の分岐に使える真偽値を返します。 |
| shouldForceBoatLockGuard | private | メソッド | shouldForceBoatLockGuard の主要処理を担当します。 |
| releaseImmobilizationAndReengage | private | メソッド | releaseImmobilizationAndReengage の主要処理を担当します。 |
| playCombatAura | private | メソッド | playCombatAura の主要処理を担当します。 |
| performPressureSkill | private | メソッド | performPressureSkill の主要処理を担当します。 |
| feintRushCombo | private | メソッド | feintRushCombo の主要処理を担当します。 |
| phantomSpikeVolley | private | メソッド | phantomSpikeVolley の主要処理を担当します。 |
| performLv50ChaosSkill | private | メソッド | performLv50ChaosSkill の主要処理を担当します。 |
| abyssalVerdict | private | メソッド | 予告後、範囲内のプレイヤーを「トーテム貫通」で処刑する(setHealth(0)) |
| voidNova | private | メソッド | 超広範囲の奈落割合ダメージ(防具貫通)。 |
| beamSweep | private | メソッド | 視界に入ったプレイヤーを薙ぎ払うビーム(複数ヒット) |
| fireStormOrBurst | private | メソッド | fireStormOrBurst の主要処理を担当します。 |
| nearbyPlayers | private | メソッド | nearbyPlayers の主要処理を担当します。 |
| lightningStorm | private | メソッド | lightningStorm の主要処理を担当します。 |
| shadowBurst | private | メソッド | shadowBurst の主要処理を担当します。 |
| telegraph | private | メソッド | telegraph の主要処理を担当します。 |
| dealPercentDamage | private | メソッド | dealPercentDamage の主要処理を担当します。 |
| vexBeam | private | メソッド | 直線ビーム(見た目だけを先に出し、最後にまとめて%ダメージ) |
| expandingRingAttack | private | メソッド | 予告→拡大リング→ヒット(半径に入ったら%ダメ) |
| shadowStepSlash | private | メソッド | テレポート斬り:ターゲット背後へ瞬間移動→小範囲ヒット |
| onTarget | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| findNearestPlayer | private | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| findNearestAllowedTarget | private | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| recordDamage | private | メソッド | recordDamage の主要処理を担当します。 |
| drainPendingDamageSnapshot | private | メソッド | drainPendingDamageSnapshot の主要処理を担当します。 |
| flushDamageBatchAsync | private | メソッド | 定期flush:ヒットごとのDB書き込みを止め、一定間隔でまとめて反映。 |
| flushPendingDamageToDb | private | メソッド | 討伐/時間切れ直前の最終flush(非同期スレッドから呼ぶ想定) 戻り値: applyDamageが返した最新HP(取得できなければ -1) |
| .bukkit.event.EventHandler | package | メソッド | .bukkit.event.EventHandler の主要処理を担当します。 |
| onMinionDeath | public | イベント処理 | イベント発生時の分岐と後続処理を担当します。 |
| pollMinionDeaths | private | メソッド | pollMinionDeaths の主要処理を担当します。 |
| buildRewardPool | private | メソッド | 表示用または出力用のデータを組み立てます。 |
| rollRandomRewards | private | メソッド | rollRandomRewards の主要処理を担当します。 |
| giveRewards | private | メソッド | giveRewards の主要処理を担当します。 |
| getAttacker | private | メソッド | 必要な状態を取得し、呼び出し側で利用しやすい形へ返します。 |
| handleDeathOrTimeup | private | メソッド | 入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。 |
private boolean specialBossesEnabled()specialBossesEnabled の主要処理を担当します。
なし
public UltimateVexManager(JavaPlugin plugin, ScoreService scoreService, DataSource ds)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
JavaPlugin pluginScoreService scoreServiceDataSource dsなし
private void startSchedulers()初期化と各種登録を行い、機能を有効化します。
なし
public void shutdown()動作中の処理やリソースを安全に停止・解放します。
なし
private void forEachPlayerBatched(List<Player> players, Consumer<Player> action)forEachPlayerBatched の主要処理を担当します。
List<Player> playersConsumer<Player> actionなし
private double computeBypassFactor()ヴェックスの残HPから「防具/耐性の影響をどれだけ無視するか(0.
なし
private void dealPercentDamageScaled(Player p, double basePercent)dealPercentDamageScaled の主要処理を担当します。
Player pdouble basePercentなし
public void onJoin(org.bukkit.event.player.PlayerJoinEvent e)イベント発生時の分岐と後続処理を担当します。
org.bukkit.event.player.PlayerJoinEvent eなし
public void onQuit(org.bukkit.event.player.PlayerQuitEvent e)イベント発生時の分岐と後続処理を担当します。
org.bukkit.event.player.PlayerQuitEvent eなし
public void onWorldUnload(org.bukkit.event.world.WorldUnloadEvent e)イベント発生時の分岐と後続処理を担当します。
org.bukkit.event.world.WorldUnloadEvent eなし
private boolean isSpawnWindow(LocalTime t)条件判定を行い、後続処理の分岐に使える真偽値を返します。
LocalTime tなし
private boolean isAliveWindow(LocalTime t)条件判定を行い、後続処理の分岐に使える真偽値を返します。
LocalTime tなし
private boolean isOutsideSpawnWindow(LocalTime t)条件判定を行い、後続処理の分岐に使える真偽値を返します。
LocalTime tなし
private boolean isAfterDespawnTime(LocalTime t)条件判定を行い、後続処理の分岐に使える真偽値を返します。
LocalTime tなし
private org.bukkit.Location pickRandomSafeAroundSpawn(org.bukkit.World w, int minR, int maxR)pickRandomSafeAroundSpawn の主要処理を担当します。
org.bukkit.World wint minRint maxRなし
private void ensureUvRandomScheduledSpawn()必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
なし
private java.time.ZonedDateTime[] pickRandomWindowForDay(java.time.LocalDate dayJst)pickRandomWindowForDay の主要処理を担当します。
java.time.LocalDate dayJstなし
private void checkTimeAndSpawnOrDespawn()checkTimeAndSpawnOrDespawn の主要処理を担当します。
なし
private void trySpawnNewBossUtc(LocalDateTime spawnUtc, LocalDateTime expireUtc)trySpawnNewBossUtc の主要処理を担当します。
LocalDateTime spawnUtcLocalDateTime expireUtcなし
public void onBossAnyDamage(org.bukkit.event.entity.EntityDamageEvent e)イベント発生時の分岐と後続処理を担当します。
org.bukkit.event.entity.EntityDamageEvent eなし
private void despawnRemainingMinions()despawnRemainingMinions の主要処理を担当します。
なし
private void scheduleMorningCleanup()JSTの次の 06:00 に全UltimateVexを確実に消し、タスクを再登録する
なし
private void purgeOldUltimateVexes(boolean forceAll)残骸掃除。
boolean forceAllなし
private void trySpawnNewBoss(LocalDateTime now)trySpawnNewBoss の主要処理を担当します。
LocalDateTime nowなし
private LocalDate till6amBaseDate(LocalDateTime now)till6amBaseDate の主要処理を担当します。
LocalDateTime nowなし
private int rollLevel()rollLevel の主要処理を担当します。
なし
private long calcMaxHealth(int level)calcMaxHealth の主要処理を担当します。
int levelなし
private Location resolveSpawnLocationWithFallback(UltimateVexDao.UltimateVexState st)resolveSpawnLocationWithFallback の主要処理を担当します。
UltimateVexDao.UltimateVexState stなし
private Location computeSafeSpawn(Location seed)computeSafeSpawn の主要処理を担当します。
Location seedなし
private Location safeAt(World w, int x, int z)safeAt の主要処理を担当します。
World wint xint zなし
private int raiseUntilAirColumn(World w, int x, int z, int startY, int needAir, int maxRaise)raiseUntilAirColumn の主要処理を担当します。
World wint xint zint startYint needAirint maxRaiseなし
private boolean isWaterish(Material m)条件判定を行い、後続処理の分岐に使える真偽値を返します。
Material mなし
private boolean isDangerous(Material m)条件判定を行い、後続処理の分岐に使える真偽値を返します。
Material mなし
private void syncFromDatabase()syncFromDatabase の主要処理を担当します。
なし
private void tryStartGateAsync(long spawnId, int gateIndex, int requiredKills)tryStartGateAsync の主要処理を担当します。
long spawnIdint gateIndexint requiredKillsなし
private void spawnLocalVex()spawnLocalVex の主要処理を担当します。
なし
private void startAntiStuckWatch()初期化と各種登録を行い、機能を有効化します。
なし
private void clearLocalBoss()clearLocalBoss の主要処理を担当します。
なし
private void applyChunkForce(Location loc)applyChunkForce の主要処理を担当します。
Location locなし
private void clearChunkForce()clearChunkForce の主要処理を担当します。
なし
public void onBossTarget(org.bukkit.event.entity.EntityTargetLivingEntityEvent e)イベント発生時の分岐と後続処理を担当します。
org.bukkit.event.entity.EntityTargetLivingEntityEvent eなし
public void onChunkUnload(org.bukkit.event.world.ChunkUnloadEvent e)イベント発生時の分岐と後続処理を担当します。
org.bukkit.event.world.ChunkUnloadEvent eなし
private void createBossBar()createBossBar の主要処理を担当します。
なし
private void clearBossBar()clearBossBar の主要処理を担当します。
なし
private void updateBossBar()状態を永続化または更新し、最新状態へ反映します。
なし
private Location resolveBossBarLocation()resolveBossBarLocation の主要処理を担当します。
なし
private int computePlannedWaveCount(int level, int gateIndex)computePlannedWaveCount の主要処理を担当します。
int levelint gateIndexなし
private void spawnMinionWave(int level, int gateIndex)spawnMinionWave の主要処理を担当します。
int levelint gateIndexなし
private static int[] scaleCountsWithRemainder(int[] base, double scale, int targetTotal)scaleCountsWithRemainder の主要処理を担当します。
int[] basedouble scaleint targetTotalなし
private static <T> void addMany(java.util.List<T> list, T clazz, int count)addMany の主要処理を担当します。
java.util.List<T> listT clazzint countなし
private Location ringLocation(Location center, double angle, double radius)ringLocation の主要処理を担当します。
Location centerdouble angledouble radiusなし
private void startSpecialsTask()初期化と各種登録を行い、機能を有効化します。
なし
private void stopSpecialsTask()動作中の処理やリソースを安全に停止・解放します。
なし
private void trySpecialAttack(double hpRatio)trySpecialAttack の主要処理を担当します。
double hpRatioなし
private boolean isBoatLockImmunityActive()条件判定を行い、後続処理の分岐に使える真偽値を返します。
なし
private boolean shouldForceBoatLockGuard()shouldForceBoatLockGuard の主要処理を担当します。
なし
private void releaseImmobilizationAndReengage(boolean removeNearbyVehicles, boolean aggressiveReengage, String reason)releaseImmobilizationAndReengage の主要処理を担当します。
boolean removeNearbyVehiclesboolean aggressiveReengageString reasonなし
private void playCombatAura(double hpRatio)playCombatAura の主要処理を担当します。
double hpRatioなし
private void performPressureSkill(double hpRatio)performPressureSkill の主要処理を担当します。
double hpRatioなし
private void feintRushCombo(Player target, int phase)feintRushCombo の主要処理を担当します。
Player targetint phaseなし
private void phantomSpikeVolley(Player target, int phase)phantomSpikeVolley の主要処理を担当します。
Player targetint phaseなし
private void performLv50ChaosSkill()performLv50ChaosSkill の主要処理を担当します。
なし
private void abyssalVerdict(double radius, long delayTicks)予告後、範囲内のプレイヤーを「トーテム貫通」で処刑する(setHealth(0))
double radiuslong delayTicksなし
private void voidNova(double radius, double percent, long delayTicks)超広範囲の奈落割合ダメージ(防具貫通)。
double radiusdouble percentlong delayTicksなし
private void beamSweep(double radius, double percentPerHit, long durationTicks)視界に入ったプレイヤーを薙ぎ払うビーム(複数ヒット)
double radiusdouble percentPerHitlong durationTicksなし
private void fireStormOrBurst(int tier, int fxTier)fireStormOrBurst の主要処理を担当します。
int tierint fxTierなし
private java.util.List<Player> nearbyPlayers(Location loc, double r)nearbyPlayers の主要処理を担当します。
Location locdouble rなし
private void lightningStorm(double minPct, double maxPct, int tier)lightningStorm の主要処理を担当します。
double minPctdouble maxPctint tierなし
private void shadowBurst(int radius, double minPct, double maxPct)shadowBurst の主要処理を担当します。
int radiusdouble minPctdouble maxPctなし
private void telegraph(Location c, int particles, Sound s)telegraph の主要処理を担当します。
Location cint particlesSound sなし
private void dealPercentDamage(Player p, double percent)dealPercentDamage の主要処理を担当します。
Player pdouble percentなし
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)直線ビーム(見た目だけを先に出し、最後にまとめて%ダメージ)
Location fromorg.bukkit.util.Vector dirdouble lenint stepsParticle particleSound soundjava.util.function.Predicate<Player> hitTestjava.util.function.Consumer<Player> onHitなし
private void expandingRingAttack(Location center, double startR, double endR, int ticks, Particle particle, Sound teleSound, Sound hitSound, double pctMin, double pctMax)予告→拡大リング→ヒット(半径に入ったら%ダメ)
Location centerdouble startRdouble endRint ticksParticle particleSound teleSoundSound hitSounddouble pctMindouble pctMaxなし
private void shadowStepSlash(Player target, double radius, double pctMin, double pctMax)テレポート斬り:ターゲット背後へ瞬間移動→小範囲ヒット
Player targetdouble radiusdouble pctMindouble pctMaxなし
public void onTarget(EntityTargetLivingEntityEvent e)イベント発生時の分岐と後続処理を担当します。
EntityTargetLivingEntityEvent eなし
private Player findNearestPlayer(Location loc, double range)必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
Location locdouble rangeなし
private LivingEntity findNearestAllowedTarget(Location loc, double range)必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
Location locdouble rangeなし
private void recordDamage(UUID uuid, String name, long dmg)recordDamage の主要処理を担当します。
UUID uuidString namelong dmgなし
private Map<UUID, Long> drainPendingDamageSnapshot()drainPendingDamageSnapshot の主要処理を担当します。
なし
private void flushDamageBatchAsync()定期flush:ヒットごとのDB書き込みを止め、一定間隔でまとめて反映。
なし
private long flushPendingDamageToDb(long spawnId)討伐/時間切れ直前の最終flush(非同期スレッドから呼ぶ想定) 戻り値: applyDamageが返した最新HP(取得できなければ -1)
long spawnIdなし
.bukkit.event.EventHandler(priority = org.bukkit.event.EventPriority.NORMAL, ignoreCancelled = true) public void onDamage(org.bukkit.event.entity.EntityDamageByEntityEvent e).bukkit.event.EventHandler の主要処理を担当します。
priority = org.bukkit.event.EventPriority.NORMALignoreCancelled = true) public void onDamage(org.bukkit.event.entity.EntityDamageByEntityEvent eなし
public void onMinionDeath(org.bukkit.event.entity.EntityDeathEvent e)イベント発生時の分岐と後続処理を担当します。
org.bukkit.event.entity.EntityDeathEvent eなし
private void pollMinionDeaths()pollMinionDeaths の主要処理を担当します。
なし
private java.util.List<Material> buildRewardPool()表示用または出力用のデータを組み立てます。
なし
private java.util.List<ItemStack> rollRandomRewards(int kinds, int level)rollRandomRewards の主要処理を担当します。
int kindsint levelなし
private void giveRewards(Player p, java.util.List<ItemStack> rewards)giveRewards の主要処理を担当します。
Player pjava.util.List<ItemStack> rewardsなし
private Player getAttacker(Entity damager)必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
Entity damagerなし
private void handleDeathOrTimeup(boolean timeup)入力やリクエストを受けて、検証・処理・応答までをまとめて担当します。
boolean timeupなし
UltimateVexManager → specialBossesEnabled → getLogger → info → getPluginManager → registerEventsonChunkUnload → getWorld → equals → getChunk → getX → getZonMinionDeath → getEntity → getUniqueId → getScoreboardTags → contains → getDropsonTarget → getEntity → getUniqueId → equals → getTarget → findNearestAllowedTargetonBossTarget → getEntity → getUniqueId → equals → getTarget → containsonBossAnyDamage → getEntity → getUniqueId → equals → getAttacker → getDamager