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.attribute.Attribute
|
||||||
import org.bukkit.plugin.java.JavaPlugin
|
import org.bukkit.plugin.java.JavaPlugin
|
||||||
import org.bukkit.scheduler.BukkitTask
|
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.*
|
||||||
import xyz.ineanto.dragon.event.end.BedInteractListener
|
import xyz.ineanto.dragon.event.end.BedInteractListener
|
||||||
import xyz.ineanto.dragon.event.end.BlockPlaceListener
|
import xyz.ineanto.dragon.event.end.BlockPlaceListener
|
||||||
|
@ -88,7 +88,7 @@ class RunnerDragon : JavaPlugin() {
|
||||||
|
|
||||||
lifecycleManager.registerEventHandler(LifecycleEvents.COMMANDS) { event ->
|
lifecycleManager.registerEventHandler(LifecycleEvents.COMMANDS) { event ->
|
||||||
val commands = event.registrar()
|
val commands = event.registrar()
|
||||||
commands.register("rd", MainCommand())
|
commands.register("game", GameCommand())
|
||||||
}
|
}
|
||||||
|
|
||||||
worldManager = WorldManager(this)
|
worldManager = WorldManager(this)
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.bukkit.entity.Player
|
||||||
import xyz.ineanto.dragon.RunnerDragon
|
import xyz.ineanto.dragon.RunnerDragon
|
||||||
|
|
||||||
@Suppress("UnstableApiUsage")
|
@Suppress("UnstableApiUsage")
|
||||||
class MainCommand : BasicCommand {
|
class GameCommand : BasicCommand {
|
||||||
override fun execute(
|
override fun execute(
|
||||||
stack: CommandSourceStack,
|
stack: CommandSourceStack,
|
||||||
args: Array<out String>
|
args: Array<out String>
|
||||||
|
@ -25,19 +25,18 @@ class MainCommand : BasicCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.isEmpty()) {
|
if (args.isEmpty()) {
|
||||||
dragonPlayer.sendMessage(Component.text("Argument manquant: /rd (teams/game/say)"))
|
dragonPlayer.sendMessage(Component.text("Argument manquant: /game (teams/game/say)"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
when (args[0]) {
|
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())
|
"teams" -> TeamsSubCommand().run(dragonPlayer, args.drop(1).toTypedArray())
|
||||||
"say" -> {
|
"say" -> {
|
||||||
if (args.drop(1).isEmpty()) {
|
if (args.drop(1).isEmpty()) {
|
||||||
dragonPlayer.sendMessage(
|
dragonPlayer.sendMessage(
|
||||||
Component
|
Component
|
||||||
.text()
|
.text()
|
||||||
.append(RunnerDragon.PREFIX)
|
|
||||||
.append(Component.text("Veuillez préciser un message.", NamedTextColor.RED))
|
.append(Component.text("Veuillez préciser un message.", NamedTextColor.RED))
|
||||||
.build()
|
.build()
|
||||||
)
|
)
|
|
@ -11,9 +11,9 @@ import xyz.ineanto.dragon.tasks.StartGameTask
|
||||||
import xyz.ineanto.dragon.world.WorldManager
|
import xyz.ineanto.dragon.world.WorldManager
|
||||||
|
|
||||||
class GameSubCommand {
|
class GameSubCommand {
|
||||||
fun run(sender: DragonPlayer, args: Array<String>) {
|
fun run(player: DragonPlayer, args: Array<String>) {
|
||||||
if (args.isEmpty()) {
|
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
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,9 +29,9 @@ class GameSubCommand {
|
||||||
if (enumContains<GameState>(args[1])) {
|
if (enumContains<GameState>(args[1])) {
|
||||||
val state = GameState.valueOf(args[1])
|
val state = GameState.valueOf(args[1])
|
||||||
RunnerDragon.instance.switchState(state)
|
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 {
|
} else {
|
||||||
sender.sendMessage(
|
player.sendMessage(
|
||||||
Component.text(
|
Component.text(
|
||||||
"State invalide (WAITING/LAUNCH/GAME/END).",
|
"State invalide (WAITING/LAUNCH/GAME/END).",
|
||||||
NamedTextColor.RED
|
NamedTextColor.RED
|
||||||
|
@ -39,12 +39,27 @@ class GameSubCommand {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(Component.text("Argument manquant.", NamedTextColor.RED))
|
player.sendMessage(Component.text("Argument manquant.", NamedTextColor.RED))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
"start" -> {
|
"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() }
|
Bukkit.getOnlinePlayers().forEach { it.inventory.clear() }
|
||||||
StartGameTask().runTaskTimer(RunnerDragon.instance, 0L, 20L)
|
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.Component
|
||||||
import net.kyori.adventure.text.format.NamedTextColor
|
import net.kyori.adventure.text.format.NamedTextColor
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
|
import xyz.ineanto.dragon.GameState
|
||||||
import xyz.ineanto.dragon.RunnerDragon
|
import xyz.ineanto.dragon.RunnerDragon
|
||||||
import xyz.ineanto.dragon.player.DragonPlayer
|
import xyz.ineanto.dragon.player.DragonPlayer
|
||||||
import xyz.ineanto.dragon.teams.Team
|
import xyz.ineanto.dragon.teams.Team
|
||||||
|
|
||||||
class TeamsSubCommand {
|
class TeamsSubCommand {
|
||||||
fun run(player: DragonPlayer, args: Array<String>) {
|
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()) {
|
if (args.isEmpty()) {
|
||||||
val teamComponent = Component
|
val teamComponent = Component
|
||||||
.text()
|
.text()
|
||||||
|
|
Loading…
Reference in a new issue