diff --git a/src/main/kotlin/xyz/ineanto/dragon/RunnerDragon.kt b/src/main/kotlin/xyz/ineanto/dragon/RunnerDragon.kt index a92a518..19d3af5 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/RunnerDragon.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/RunnerDragon.kt @@ -11,7 +11,7 @@ import org.bukkit.* import org.bukkit.attribute.Attribute import org.bukkit.plugin.java.JavaPlugin import org.bukkit.scheduler.BukkitTask -import xyz.ineanto.dragon.commands.MainCommand +import xyz.ineanto.dragon.commands.GameCommand import xyz.ineanto.dragon.event.* import xyz.ineanto.dragon.event.end.BedInteractListener import xyz.ineanto.dragon.event.end.BlockPlaceListener @@ -88,7 +88,7 @@ class RunnerDragon : JavaPlugin() { lifecycleManager.registerEventHandler(LifecycleEvents.COMMANDS) { event -> val commands = event.registrar() - commands.register("rd", MainCommand()) + commands.register("game", GameCommand()) } worldManager = WorldManager(this) diff --git a/src/main/kotlin/xyz/ineanto/dragon/commands/MainCommand.kt b/src/main/kotlin/xyz/ineanto/dragon/commands/GameCommand.kt similarity index 89% rename from src/main/kotlin/xyz/ineanto/dragon/commands/MainCommand.kt rename to src/main/kotlin/xyz/ineanto/dragon/commands/GameCommand.kt index d7fdb74..d39f585 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/commands/MainCommand.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/commands/GameCommand.kt @@ -10,7 +10,7 @@ import org.bukkit.entity.Player import xyz.ineanto.dragon.RunnerDragon @Suppress("UnstableApiUsage") -class MainCommand : BasicCommand { +class GameCommand : BasicCommand { override fun execute( stack: CommandSourceStack, args: Array @@ -25,19 +25,18 @@ class MainCommand : BasicCommand { } if (args.isEmpty()) { - dragonPlayer.sendMessage(Component.text("Argument manquant: /rd (teams/game/say)")) + dragonPlayer.sendMessage(Component.text("Argument manquant: /game (teams/game/say)")) return } when (args[0]) { - "game" -> GameSubCommand().run(dragonPlayer, args.drop(1).toTypedArray()) + "manage" -> GameSubCommand().run(dragonPlayer, args.drop(1).toTypedArray()) "teams" -> TeamsSubCommand().run(dragonPlayer, args.drop(1).toTypedArray()) "say" -> { if (args.drop(1).isEmpty()) { dragonPlayer.sendMessage( Component .text() - .append(RunnerDragon.PREFIX) .append(Component.text("Veuillez préciser un message.", NamedTextColor.RED)) .build() ) diff --git a/src/main/kotlin/xyz/ineanto/dragon/commands/GameSubCommand.kt b/src/main/kotlin/xyz/ineanto/dragon/commands/GameSubCommand.kt index 848a1b0..507d155 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/commands/GameSubCommand.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/commands/GameSubCommand.kt @@ -11,9 +11,9 @@ import xyz.ineanto.dragon.tasks.StartGameTask import xyz.ineanto.dragon.world.WorldManager class GameSubCommand { - fun run(sender: DragonPlayer, args: Array) { + fun run(player: DragonPlayer, args: Array) { if (args.isEmpty()) { - sender.sendMessage(Component.text("Argument manquant: /rd game (start/state)")) + player.sendMessage(Component.text("Argument manquant: /game manage (start/state/dim)")) return } @@ -29,9 +29,9 @@ class GameSubCommand { if (enumContains(args[1])) { val state = GameState.valueOf(args[1]) RunnerDragon.instance.switchState(state) - sender.sendMessage(Component.text("État de jeu défini en: ${state.name}.", NamedTextColor.RED)) + player.sendMessage(Component.text("État de jeu défini en: ${state.name}.", NamedTextColor.RED)) } else { - sender.sendMessage( + player.sendMessage( Component.text( "State invalide (WAITING/LAUNCH/GAME/END).", NamedTextColor.RED @@ -39,12 +39,27 @@ class GameSubCommand { ) } } else { - sender.sendMessage(Component.text("Argument manquant.", NamedTextColor.RED)) + player.sendMessage(Component.text("Argument manquant.", NamedTextColor.RED)) } } "start" -> { - sender.sendMessage(Component.text("Démarrage de la partie.", NamedTextColor.RED)) + if (RunnerDragon.STATE != GameState.WAITING) { + val errorMessage = Component + .text() + .append( + Component.text( + "Impossible de lancer le jeu, il a déjà démarré.", + NamedTextColor.RED + ) + ) + .appendNewline() + .build() + player.sendMessage(errorMessage) + return + } + + player.sendMessage(Component.text("Démarrage de la partie.", NamedTextColor.RED)) Bukkit.getOnlinePlayers().forEach { it.inventory.clear() } StartGameTask().runTaskTimer(RunnerDragon.instance, 0L, 20L) } diff --git a/src/main/kotlin/xyz/ineanto/dragon/commands/TeamsSubCommand.kt b/src/main/kotlin/xyz/ineanto/dragon/commands/TeamsSubCommand.kt index e923786..e380058 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/commands/TeamsSubCommand.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/commands/TeamsSubCommand.kt @@ -3,12 +3,23 @@ package xyz.ineanto.dragon.commands import net.kyori.adventure.text.Component import net.kyori.adventure.text.format.NamedTextColor import org.bukkit.Bukkit +import xyz.ineanto.dragon.GameState import xyz.ineanto.dragon.RunnerDragon import xyz.ineanto.dragon.player.DragonPlayer import xyz.ineanto.dragon.teams.Team class TeamsSubCommand { fun run(player: DragonPlayer, args: Array) { + if (RunnerDragon.STATE != GameState.WAITING) { + val errorMessage = Component + .text() + .append(Component.text("Impossible de configurer les équipes : jeu déjà démarré.", NamedTextColor.RED)) + .appendNewline() + .build() + player.sendMessage(errorMessage) + return + } + if (args.isEmpty()) { val teamComponent = Component .text()