diff --git a/src/main/kotlin/xyz/ineanto/dragon/RunnerDragon.kt b/src/main/kotlin/xyz/ineanto/dragon/RunnerDragon.kt index a50000f..1b58a73 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/RunnerDragon.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/RunnerDragon.kt @@ -41,8 +41,10 @@ class RunnerDragon : JavaPlugin() { val TITLE = MiniMessage.miniMessage() .deserialize("RunnerDragon") - val PREFIX = MiniMessage.miniMessage() - .deserialize("Met@Gaming") + val PREFIX = Component.text() + .append(TITLE) + .appendSpace() + .append(Component.text("/", NamedTextColor.DARK_GRAY, TextDecoration.BOLD)) val LAST_BED_INTERACT: Cache = CacheBuilder.newBuilder() .expireAfterWrite(Duration.ofSeconds(10)) @@ -76,7 +78,7 @@ class RunnerDragon : JavaPlugin() { override fun onEnable() { instance = this - val previousWorldFolder = File("outerlands") + val previousWorldFolder = File("runnerdragon") val previousEndFolder = File("world_the_end") val previousNetherFolder = File("world_nether") if (previousWorldFolder.exists()) { @@ -92,7 +94,7 @@ class RunnerDragon : JavaPlugin() { PreviousWorldUtils.resetNether() } - val creator = WorldCreator("outerlands") + val creator = WorldCreator("runnerdragon") creator.environment(World.Environment.NORMAL) creator.generateStructures(true) creator.type(WorldType.NORMAL) @@ -138,6 +140,7 @@ class RunnerDragon : JavaPlugin() { val resetComponent: Component = Component .text() .append(PREFIX) + .appendSpace() .append(Component.text("Mise à zéro du jeu !", NamedTextColor.GOLD)) .build() @@ -190,6 +193,7 @@ class RunnerDragon : JavaPlugin() { val launchComponent: Component = Component .text() .append(PREFIX) + .appendSpace() .append(Component.text("Lancement de la partie !", NamedTextColor.GOLD)) .build() diff --git a/src/main/kotlin/xyz/ineanto/dragon/commands/MainCommand.kt b/src/main/kotlin/xyz/ineanto/dragon/commands/MainCommand.kt index 40710c1..5eef5bd 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/commands/MainCommand.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/commands/MainCommand.kt @@ -31,7 +31,7 @@ class MainCommand : CommandExecutor { "teams" -> TeamsSubCommand().run(dragonPlayer, args.drop(1).toTypedArray()) "say" -> { if (args.drop(1).isEmpty()) { - player.sendMessage( + dragonPlayer.sendMessage( Component .text() .append(RunnerDragon.PREFIX) diff --git a/src/main/kotlin/xyz/ineanto/dragon/event/DimensionEntranceListener.kt b/src/main/kotlin/xyz/ineanto/dragon/event/DimensionEntranceListener.kt index fa6c3da..70bebc2 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/event/DimensionEntranceListener.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/event/DimensionEntranceListener.kt @@ -1,6 +1,7 @@ package xyz.ineanto.dragon.event -import net.md_5.bungee.api.ChatColor +import net.kyori.adventure.text.Component +import net.kyori.adventure.text.minimessage.MiniMessage import org.bukkit.Bukkit import org.bukkit.Sound import org.bukkit.event.EventHandler @@ -17,7 +18,17 @@ class DimensionEntranceListener : Listener { when (event.cause) { PlayerTeleportEvent.TeleportCause.NETHER_PORTAL -> if (RunnerDragon.NETHER_PORTAL_ENTERED.not()) { RunnerDragon.NETHER_PORTAL_ENTERED = true - Bukkit.broadcastMessage("${RunnerDragon.PREFIX} ${ChatColor.GOLD}Le portail du Nether a été franchi pour la première fois !") + + val dimensionComponent = Component.text() + .append(RunnerDragon.PREFIX) + .appendSpace() + .append( + MiniMessage.miniMessage() + .deserialize("Le portail du Nether a été franchi pour la première fois !") + ) + .build() + + Bukkit.broadcast(dimensionComponent) Bukkit.getOnlinePlayers().forEach { it.playSound(it.location, Sound.ENTITY_VILLAGER_CELEBRATE, 1f, 0.3f) } @@ -27,7 +38,17 @@ class DimensionEntranceListener : Listener { event.player.teleport(RunnerDragon.WORLD_END.spawnLocation) if (RunnerDragon.END_PORTAL_ENTERED.not()) { RunnerDragon.END_PORTAL_ENTERED = true - Bukkit.broadcastMessage("${RunnerDragon.PREFIX} ${ChatColor.GOLD}Le portail de l'End a été franchi pour la première fois !") + + val dimensionComponent = Component.text() + .append(RunnerDragon.PREFIX) + .appendSpace() + .append( + MiniMessage.miniMessage() + .deserialize("Le portail de l'End a été franchi pour la première fois !") + ) + .build() + + Bukkit.broadcast(dimensionComponent) Bukkit.getOnlinePlayers().forEach { it.playSound(it.location, Sound.ENTITY_VILLAGER_CELEBRATE, 1f, 0.3f) } diff --git a/src/main/kotlin/xyz/ineanto/dragon/event/end/EnderDragonListener.kt b/src/main/kotlin/xyz/ineanto/dragon/event/end/EnderDragonListener.kt index d2cd923..136f4a6 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/event/end/EnderDragonListener.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/event/end/EnderDragonListener.kt @@ -1,7 +1,10 @@ package xyz.ineanto.dragon.event.end +import net.kyori.adventure.text.Component +import net.kyori.adventure.text.format.NamedTextColor +import net.kyori.adventure.text.format.TextDecoration +import net.kyori.adventure.text.minimessage.MiniMessage import org.bukkit.Bukkit -import org.bukkit.ChatColor import org.bukkit.Sound import org.bukkit.World.Environment import org.bukkit.entity.EnderDragon @@ -37,7 +40,6 @@ class EnderDragonListener : Listener { if (entity is Projectile) { player = entity.shooter as Player } else if (entity is Player) { - Bukkit.broadcastMessage("Last damage dealt by ${entity.name}") player = entity } } @@ -53,8 +55,38 @@ class EnderDragonListener : Listener { it.playSound(it.location, Sound.ENTITY_ENDER_DRAGON_DEATH, 1f, 0.5f) } } - Bukkit.broadcastMessage("${RunnerDragon.PREFIX} ${ChatColor.GOLD}${ChatColor.BOLD}VICTOIRE !") - Bukkit.broadcastMessage("${RunnerDragon.PREFIX} ${ChatColor.GOLD}${ChatColor.BOLD}LE DRAGON A ÉTÉ TUÉ PAR L'ÉQUIPE ${team?.displayName}${ChatColor.GOLD}${ChatColor.BOLD}!") + + val victoryComponent: Component = Component.text() + .append(RunnerDragon.PREFIX) + .appendSpace() + .append( + MiniMessage.miniMessage().deserialize("VICTOIRE !") + ) + .build() + + + val teamComponent = Component.text() + .append(RunnerDragon.PREFIX) + .appendSpace() + .append( + Component.text( + "Le dragon a été tué par l'équipe :", + NamedTextColor.WHITE + ) + ) + .appendSpace() + + team?.let { + teamComponent.append(team.displayName) + } ?: { + teamComponent.append(Component.text("???", NamedTextColor.RED, TextDecoration.OBFUSCATED)) + } + + teamComponent.appendSpace() + teamComponent.append(Component.text("!", NamedTextColor.WHITE, TextDecoration.BOLD)) + + Bukkit.broadcast(victoryComponent) + Bukkit.broadcast(teamComponent.build()) } SecondFight.start(dragon) diff --git a/src/main/kotlin/xyz/ineanto/dragon/player/DragonPlayer.kt b/src/main/kotlin/xyz/ineanto/dragon/player/DragonPlayer.kt index 62f5e23..cf2edfa 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/player/DragonPlayer.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/player/DragonPlayer.kt @@ -3,6 +3,7 @@ package xyz.ineanto.dragon.player import net.kyori.adventure.text.Component import net.kyori.adventure.text.format.NamedTextColor import net.kyori.adventure.text.format.TextDecoration +import net.kyori.adventure.text.minimessage.MiniMessage import org.bukkit.Bukkit import org.bukkit.GameMode import org.bukkit.Material @@ -23,10 +24,13 @@ class DragonPlayer(uuid: UUID) { } fun updateHeaderFooter() { - val header = RunnerDragon.TITLE + val header = Component.text() + .append(RunnerDragon.TITLE) .appendNewline() - .append(Component.text("Met@", NamedTextColor.DARK_PURPLE)) - .append(Component.text("Gaming", NamedTextColor.DARK_AQUA)) + .append( + MiniMessage.miniMessage() + .deserialize("Met@Gaming") + ) .appendNewline() .append(Component.text("Temps:", NamedTextColor.GOLD)) .appendSpace() @@ -38,6 +42,7 @@ class DragonPlayer(uuid: UUID) { .appendSpace() .append(Component.text("(c'est horrible)", NamedTextColor.GRAY, TextDecoration.ITALIC)) .appendNewline() + .build() val footer = Component .text() @@ -51,6 +56,7 @@ class DragonPlayer(uuid: UUID) { .append(Component.text("Concept:", NamedTextColor.GOLD, TextDecoration.ITALIC)) .appendSpace() .append(Component.text("Linkxss", NamedTextColor.BLUE)) + .build() player.sendPlayerListHeader(header) player.sendPlayerListFooter(footer) diff --git a/src/main/kotlin/xyz/ineanto/dragon/scoreboard/ScoreboardTeams.kt b/src/main/kotlin/xyz/ineanto/dragon/scoreboard/ScoreboardTeams.kt index 2388876..b659f35 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/scoreboard/ScoreboardTeams.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/scoreboard/ScoreboardTeams.kt @@ -4,6 +4,7 @@ import org.bukkit.Bukkit import org.bukkit.scoreboard.Scoreboard import org.bukkit.scoreboard.Team import xyz.ineanto.dragon.RunnerDragon +import xyz.ineanto.dragon.player.DragonPlayer /** * TeamScoreboard @@ -29,8 +30,15 @@ class ScoreboardTeams { } } - fun addPlayer() { + fun addPlayer(player: DragonPlayer) { + player.getTeam()?.let { + val team = scoreboard!!.getTeam(it.teamColor.displayName) + team?.addPlayer(player.player) + } + } + fun removePlayer() { + } fun reset() { diff --git a/src/main/kotlin/xyz/ineanto/dragon/tasks/GracePeriodTask.kt b/src/main/kotlin/xyz/ineanto/dragon/tasks/GracePeriodTask.kt index 1fc89b1..0d2aec8 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/tasks/GracePeriodTask.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/tasks/GracePeriodTask.kt @@ -1,7 +1,8 @@ package xyz.ineanto.dragon.tasks +import net.kyori.adventure.text.Component +import net.kyori.adventure.text.format.NamedTextColor import org.bukkit.Bukkit -import org.bukkit.ChatColor import org.bukkit.scheduler.BukkitRunnable import xyz.ineanto.dragon.GameState import xyz.ineanto.dragon.RunnerDragon @@ -11,12 +12,52 @@ class GracePeriodTask : BukkitRunnable() { override fun run() { counter-- - val base = "${ChatColor.GOLD}Activation du PVP dans" + + val pvpComponent: Component = Component + .text() + .append(RunnerDragon.PREFIX) + .appendSpace() + .append(Component.text("Activation du PVP dans", NamedTextColor.GOLD)) + .build() + when (counter) { - 600 -> Bukkit.broadcastMessage("${RunnerDragon.PREFIX} $base ${ChatColor.AQUA}10 ${ChatColor.GOLD}minutes.") + 600 -> { + val timeComponent = Component.text() + .append(pvpComponent) + .appendSpace() + .append(Component.text("10", NamedTextColor.AQUA)) + .appendSpace() + .append(Component.text("minutes.", NamedTextColor.GOLD)) + .build() + + Bukkit.broadcast(timeComponent) + } + 580 -> RunnerDragon.instance.switchState(GameState.GRACE_PERIOD) - 300 -> Bukkit.broadcastMessage("${RunnerDragon.PREFIX} $base ${ChatColor.AQUA}5 ${ChatColor.GOLD}minutes.") - in 1..5, 60 -> Bukkit.broadcastMessage("${RunnerDragon.PREFIX} $base ${ChatColor.AQUA}$counter ${ChatColor.GOLD}secondes.") + 300 -> { + val timeComponent = Component.text() + .append(pvpComponent) + .appendSpace() + .append(Component.text("5", NamedTextColor.AQUA)) + .appendSpace() + .append(Component.text("minutes.", NamedTextColor.GOLD)) + .build() + + Bukkit.broadcast(timeComponent) + } + + in 1..5, 60 -> { + val timeComponent = Component.text() + .append(pvpComponent) + .appendSpace() + .append(Component.text(counter, NamedTextColor.AQUA)) + .appendSpace() + .append(Component.text("minutes.", NamedTextColor.GOLD)) + .build() + + Bukkit.broadcast(timeComponent) + } + 0 -> RunnerDragon.instance.switchState(GameState.GAME) } } diff --git a/src/main/kotlin/xyz/ineanto/dragon/tasks/StartGameTask.kt b/src/main/kotlin/xyz/ineanto/dragon/tasks/StartGameTask.kt index 8108eb9..cae88d5 100644 --- a/src/main/kotlin/xyz/ineanto/dragon/tasks/StartGameTask.kt +++ b/src/main/kotlin/xyz/ineanto/dragon/tasks/StartGameTask.kt @@ -1,7 +1,8 @@ package xyz.ineanto.dragon.tasks +import net.kyori.adventure.text.Component +import net.kyori.adventure.text.format.NamedTextColor import org.bukkit.Bukkit -import org.bukkit.ChatColor import org.bukkit.scheduler.BukkitRunnable import xyz.ineanto.dragon.GameState import xyz.ineanto.dragon.RunnerDragon @@ -12,8 +13,19 @@ class StartGameTask : BukkitRunnable() { override fun run() { counter-- + val counterComponent: Component = Component + .text() + .append(RunnerDragon.PREFIX) + .appendSpace() + .append(Component.text("Départ dans", NamedTextColor.GOLD)) + .appendSpace() + .append(Component.text(counter, NamedTextColor.AQUA)) + .appendSpace() + .append(Component.text("secondes.", NamedTextColor.GOLD)) + .build() + when (counter) { - in 1..5, 10 -> Bukkit.broadcastMessage("${RunnerDragon.PREFIX} ${ChatColor.GOLD}Départ dans ${ChatColor.AQUA}$counter ${ChatColor.GOLD}secondes.") + in 1..5, 10 -> Bukkit.broadcast(counterComponent) 0 -> RunnerDragon.instance.switchState(GameState.LAUNCH) } }