起動・前提準備
初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
New Year celebration (default: JST 12/31 23:00 - 01/01 01:00).
com.example.rankingplugin.newyearnewyear/NewYearCelebrationService.javaclassNew Year celebration (default: JST 12/31 23:00 - 01/01 01:00). Features: - Ambient celebration effects during the window - Countdown (ActionBar + Title + optional BossBar) - Midnight show: ring fireworks around each player + fixed fireworks at spawn
New Year celebration (default: JST 12/31 23:00 - 01/01 01:00).。newyear パッケージの中でも 591 行規模の中核クラスで、運用中の主ループ・スケジューラが一か所に集まっています。中規模クラス群の中では変更影響が広く、章立てで読む価値が高いため重点解説へ追加しています。
NewYearCelebrationServiceensureBossBarstartstartCountdownstartMidnightShowspawnRingParticlesspawnRingFireworksspawnSpiralParticlesspawnFirework初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。
外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。
イベント受理、定期監視、判定、進行更新など、実際に挙動を生む中心ロジックです。
メモリ状態と保存状態を揃え、結果を次の呼び出しや画面表示へ繋ぐ部分です。
メインスレッド境界とバックグラウンド処理が交差します。重い処理やタイミング起因の不具合を追うときの要所です。
このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。
イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。
結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。
| Signature | 説明 | 主要呼び出し |
|---|---|---|
public NewYearCelebrationService(Plugin plugin) | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 | 主要呼び出しなし |
| Name | Visibility | Kind | 説明 |
|---|---|---|---|
| NewYearCelebrationService | public | コンストラクタ | 依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。 |
| start | public | メソッド | 初期化と各種登録を行い、機能を有効化します。 |
| stop | public | メソッド | 動作中の処理やリソースを安全に停止・解放します。 |
| readZone | private | メソッド | readZone の主要処理を担当します。 |
| tick | private | メソッド | tick の主要処理を担当します。 |
| computeWindow | private | メソッド | computeWindow の主要処理を担当します。 |
| buildWindow | private | メソッド | 表示用または出力用のデータを組み立てます。 |
| parseMdTime | private | メソッド | 入力テキストや設定値を解析して内部表現へ変換します。 |
| maybeAmbient | private | メソッド | maybeAmbient の主要処理を担当します。 |
| maybeFireworks | private | メソッド | maybeFireworks の主要処理を担当します。 |
| maybeStartCountdown | private | メソッド | maybeStartCountdown の主要処理を担当します。 |
| startCountdown | private | メソッド | 初期化と各種登録を行い、機能を有効化します。 |
| updateCountdownDisplay | private | メソッド | 状態を永続化または更新し、最新状態へ反映します。 |
| triggerMidnight | private | メソッド | triggerMidnight の主要処理を担当します。 |
| startMidnightShow | private | メソッド | 初期化と各種登録を行い、機能を有効化します。 |
| spawnRingParticles | private | メソッド | spawnRingParticles の主要処理を担当します。 |
| spawnRingFireworks | private | メソッド | spawnRingFireworks の主要処理を担当します。 |
| spawnSpiralParticles | private | メソッド | spawnSpiralParticles の主要処理を担当します。 |
| spawnFirework | private | メソッド | spawnFirework の主要処理を担当します。 |
| spawnFireworkFallback | private | メソッド | Visual-only firework fallback used when entity-spawn / explode is blocked by protections. |
| ensureBossBar | private | メソッド | 必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。 |
| cleanupBossBar | private | メソッド | cleanupBossBar の主要処理を担当します。 |
| color | private | メソッド | color の主要処理を担当します。 |
| rnd | private | メソッド | rnd の主要処理を担当します。 |
| rndCircleX | private | メソッド | rndCircleX の主要処理を担当します。 |
| rndCircleZ | private | メソッド | rndCircleZ の主要処理を担当します。 |
public NewYearCelebrationService(Plugin plugin)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
Plugin pluginなし
public void start()初期化と各種登録を行い、機能を有効化します。
なし
public void stop()動作中の処理やリソースを安全に停止・解放します。
なし
private ZoneId readZone()readZone の主要処理を担当します。
なし
private void tick()tick の主要処理を担当します。
なし
private Window computeWindow(ZonedDateTime now)computeWindow の主要処理を担当します。
ZonedDateTime nowなし
private Window buildWindow(int eventYear)表示用または出力用のデータを組み立てます。
int eventYearなし
private static MdTime parseMdTime(String raw, MdTime def)入力テキストや設定値を解析して内部表現へ変換します。
String rawMdTime defなし
private void maybeAmbient(ZonedDateTime now)maybeAmbient の主要処理を担当します。
ZonedDateTime nowなし
private void maybeFireworks(ZonedDateTime now)maybeFireworks の主要処理を担当します。
ZonedDateTime nowなし
private void maybeStartCountdown(ZonedDateTime now, Window w)maybeStartCountdown の主要処理を担当します。
ZonedDateTime nowWindow wなし
private void startCountdown(int eventYear, ZonedDateTime midnight, int startSeconds)初期化と各種登録を行い、機能を有効化します。
int eventYearZonedDateTime midnightint startSecondsなし
private void updateCountdownDisplay(int secLeft, int startSeconds, int titleSeconds)状態を永続化または更新し、最新状態へ反映します。
int secLeftint startSecondsint titleSecondsなし
private void triggerMidnight(int eventYear)triggerMidnight の主要処理を担当します。
int eventYearなし
private void startMidnightShow()初期化と各種登録を行い、機能を有効化します。
なし
private void spawnRingParticles(World w, Location center, int points, double radius)spawnRingParticles の主要処理を担当します。
World wLocation centerint pointsdouble radiusなし
private void spawnRingFireworks(World w, Location center, int fireworks, double radius)spawnRingFireworks の主要処理を担当します。
World wLocation centerint fireworksdouble radiusなし
private void spawnSpiralParticles(World w, Location center, int tickIndex)spawnSpiralParticles の主要処理を担当します。
World wLocation centerint tickIndexなし
private void spawnFirework(Location at, int power)spawnFirework の主要処理を担当します。
Location atint powerなし
private void spawnFireworkFallback(Location at)Visual-only firework fallback used when entity-spawn / explode is blocked by protections.
Location atなし
private void ensureBossBar()必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
なし
private void cleanupBossBar()cleanupBossBar の主要処理を担当します。
なし
private static String color(String s)color の主要処理を担当します。
String sなし
private static double rnd(double min, double max)rnd の主要処理を担当します。
double mindouble maxなし
private static double rndCircleX(double radius)rndCircleX の主要処理を担当します。
double radiusなし
private static double rndCircleZ(double radius)rndCircleZ の主要処理を担当します。
double radiusなし
start → getConfig → getBoolean → readZone → run → tickstartCountdown → max → getConfig → getInt → getBoolean → ensureBossBarstartMidnightShow → max → getConfig → getInt → getDouble → getBooleanupdateCountdownDisplay → color → getOnlinePlayers → sendTitle → spigot → sendMessageensureBossBar → createBossBar → color → setVisible