Replace TeamManager with PresetTeam GUI system

Replace the old dynamic /team invite system with a fixed GUI-based preset team implementation. Removes TeamManager, Team, TeamListener and the TeamCommand, and introduces PresetTeam, PresetTeamManager and GUI listeners/menus (TeamSelectionMenu/TeamSelectionListener). Codepaths that referenced teamManager were migrated to presetTeamManager (GameManager win/compass logic, Lunar rich presence, Oracle perk, scoreboards, tablist, lobby items). Lobby now shows a team wool item when teams are enabled and the tablist/scoreboard display and prefix logic were adapted to reflect preset teams. Configuration supports teams.enabled, teams.preset-count and teams.max-size; scheduled invite cleanup and old team-reset logic were removed accordingly.
This commit is contained in:
TDSTOS
2026-04-13 01:23:29 +02:00
parent 77560a7486
commit 7589b05433
18 changed files with 759 additions and 694 deletions

View File

@@ -295,7 +295,7 @@ class GameManager(
private fun checkWin() {
if (currentState != GameState.INGAME && currentState != GameState.INVINCIBILITY) return
val teamManager = plugin.teamManager
val teamManager = plugin.presetTeamManager
val roundOver = when {
// Nur noch 0 oder 1 Spieler übrig → immer Ende
@@ -326,8 +326,8 @@ class GameManager(
val winnerUUID = alivePlayers.firstOrNull()
val winnerTeam = if ( plugin.teamManager.isEnabled && winnerUUID != null )
plugin.teamManager.getTeam( winnerUUID ) else null
val winnerTeam = if ( plugin.presetTeamManager.isEnabled && winnerUUID != null )
plugin.presetTeamManager.getTeam( winnerUUID ) else null
Bukkit.getOnlinePlayers().forEach { p ->
val isWinner = winnerTeam?.contains( p.uniqueId ) ?: ( p.uniqueId == winnerUUID )
@@ -364,7 +364,7 @@ class GameManager(
private fun buildWinnerName(anyAliveUUID: UUID?): String {
anyAliveUUID ?: return "N/A"
val teamManager = plugin.teamManager
val teamManager = plugin.presetTeamManager
if (!teamManager.isEnabled) {
return Bukkit.getPlayer(anyAliveUUID)?.name ?: "N/A"
}
@@ -420,8 +420,8 @@ class GameManager(
{
if ( p == target ) continue
if ( plugin.teamManager.isEnabled &&
plugin.teamManager.areInSameTeam( p, target ))
if ( plugin.presetTeamManager.isEnabled &&
plugin.presetTeamManager.areInSameTeam( p, target ))
continue
val dist = p.location.distanceSquared( target.location )