package xyz.atnrch.dragon.commands import org.bukkit.Bukkit import org.bukkit.ChatColor import xyz.atnrch.dragon.RunnerDragon import xyz.atnrch.dragon.enumContains import xyz.atnrch.dragon.player.DragonPlayer class TeamsSubCommand { fun run(player: DragonPlayer, args: Array) { if (args.isEmpty()) { player.sendMessage( """ ${ChatColor.LIGHT_PURPLE}Configuration des équipes: ${ChatColor.DARK_GRAY}- ${ChatColor.GOLD}Status: ${if (RunnerDragon.TEAM_LOCK) "${ChatColor.RED}fermées" else "${ChatColor.GREEN}ouvertes${ChatColor.RESET}."} ${ChatColor.DARK_GRAY}- ${ChatColor.GOLD}Nombre: ${ChatColor.AQUA}${RunnerDragon.NUMBER_OF_TEAMS} ${ChatColor.DARK_GRAY}- ${ChatColor.GOLD}Capacité: ${ChatColor.AQUA}${RunnerDragon.TEAM_MAX_SIZE} ${ChatColor.DARK_GRAY}- ${ChatColor.GOLD}Équipes enregistrées: ${ RunnerDragon.instance.teamManager.getTeamColorsNames().joinToString("${ChatColor.RESET}, ", "", "") } """.trimIndent() ) return } when (args[0]) { "lock" -> { RunnerDragon.TEAM_LOCK = RunnerDragon.TEAM_LOCK.not() Bukkit.getOnlinePlayers() .forEach { RunnerDragon.instance.playerManager.getPlayer(it.uniqueId) .setTeamItem(RunnerDragon.TEAM_LOCK.not()) } player.sendMessage("Les équipes sont désormais: ${if (RunnerDragon.TEAM_LOCK) "${ChatColor.RED}fermées" else "${ChatColor.GREEN}ouvertes${ChatColor.RESET}."}") } "swap" -> { if (args.size < 2) { player.sendMessage("${ChatColor.RED}Argument manquant.") } else { val target = Bukkit.getPlayer(args[1]) val targetTeam = args[2] if (enumContains(targetTeam)) { val value: ChatColor = ChatColor.valueOf(targetTeam) target?.let { val instance = RunnerDragon.instance instance.teamManager.getOnColor(value) ?.let { coloredTeam -> val dragonPlayer = instance.playerManager.getPlayer(it.uniqueId) dragonPlayer.setTeam(coloredTeam) dragonPlayer.updateDisplayName() player.sendMessage("${target.name} est passé dans l'équipe ${coloredTeam.name}") } } } else { player.sendMessage("${ChatColor.RED}Couleur invalide.") } } } } } }