Add podium ceremony and rank enhancements

Introduce a PodiumManager to run an end-of-round podium ceremony and integrate it into the lifecycle. Key changes:

- Add PodiumManager (new): builds podium columns, teleports and freezes top-3 players, spawns TextDisplay entities, posts staggered announcements, and runs a ranked firework show; includes cleanup to remove entities, blocks and cancel tasks.
- SpeedHG: initialize podiumManager and call podiumManager.cleanup() on disable.
- GameManager: trigger plugin.podiumManager.launch(winnerUUID) shortly after the win announcement.
- RankingManager: track elimination order during the round and expose getEliminationOrder() to determine placements.
- Rank: add sub-tier logic (I/II/III), firework color, and helper methods to produce formatted MiniMessage rank tags/components; improve cached component/prefix handling.
- ScoreboardManager: use Rank.getFormattedRankName(...) to show the formatted rank with sub-tier on scoreboards.

Purpose: provide a richer end-of-round experience (visuals, sounds, fireworks) and accurate top-3 determination using elimination order while adding rank sub-tiering and formatted rank output for UI elements.
This commit is contained in:
TDSTOS
2026-04-04 00:40:56 +02:00
parent 2434460c32
commit 5be2ae2674
6 changed files with 604 additions and 37 deletions

View File

@@ -318,6 +318,10 @@ class GameManager(
description = "**$winnerName** hat das Spiel gewonnen! GG!",
colorHex = 0xFFAA00 // Gold
)
Bukkit.getScheduler().runTaskLater( plugin, { ->
plugin.podiumManager.launch( winnerUUID )
}, 60L )
}
// --- Helfer Methoden ---