feat: prevent management after starting game
This commit is contained in:
parent
c810cc0aaf
commit
b71afddb19
4 changed files with 37 additions and 12 deletions
|
@ -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)
|
||||
|
|
|
@ -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<out String>
|
||||
|
@ -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()
|
||||
)
|
|
@ -11,9 +11,9 @@ import xyz.ineanto.dragon.tasks.StartGameTask
|
|||
import xyz.ineanto.dragon.world.WorldManager
|
||||
|
||||
class GameSubCommand {
|
||||
fun run(sender: DragonPlayer, args: Array<String>) {
|
||||
fun run(player: DragonPlayer, args: Array<String>) {
|
||||
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<GameState>(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)
|
||||
}
|
||||
|
|
|
@ -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<String>) {
|
||||
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()
|
||||
|
|
Loading…
Reference in a new issue