feat: updated game systems
This commit is contained in:
parent
80de826345
commit
fab70cee5c
19 changed files with 220 additions and 101 deletions
|
@ -3,17 +3,21 @@ 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<String>) {
|
||||
if (args.isEmpty() || args.size < 2) {
|
||||
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
|
||||
|
@ -31,29 +35,31 @@ class TeamsSubCommand {
|
|||
}
|
||||
|
||||
"swap" -> {
|
||||
val target = Bukkit.getPlayer(args[1])
|
||||
val targetTeam = args[2]
|
||||
|
||||
if (enumContains<ChatColor>(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}")
|
||||
}
|
||||
}
|
||||
if (args.size < 2) {
|
||||
player.sendMessage("${ChatColor.RED}Argument manquant.")
|
||||
} else {
|
||||
player.sendMessage("${ChatColor.RED}Couleur invalide.")
|
||||
val target = Bukkit.getPlayer(args[1])
|
||||
val targetTeam = args[2]
|
||||
|
||||
if (enumContains<ChatColor>(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.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private inline fun <reified T : Enum<T>> enumContains(name: String): Boolean {
|
||||
return enumValues<T>().any { it.name == name }
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue