diff --git a/build.gradle.kts b/build.gradle.kts index 1c2c1be..86fa1fa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -52,8 +52,8 @@ tasks { runServer { downloadPlugins { modrinth("skinsrestorer", skinRestorerVersion) - modrinth("luckperms", luckPermsVersion) - modrinth("simple-voice-chat", voiceChatVersion) + modrinth("luckperms", "v$luckPermsVersion-bukkit") + modrinth("simple-voice-chat", "bukkit-$voiceChatVersion") } minecraftVersion(minecraftVersion) } diff --git a/src/main/kotlin/fr/azur/tcoww/Tcoww.kt b/src/main/kotlin/fr/azur/tcoww/Tcoww.kt index 2b2af9d..5326485 100644 --- a/src/main/kotlin/fr/azur/tcoww/Tcoww.kt +++ b/src/main/kotlin/fr/azur/tcoww/Tcoww.kt @@ -19,7 +19,11 @@ import org.bukkit.configuration.serialization.ConfigurationSerialization import org.bukkit.plugin.java.JavaPlugin import org.bukkit.scoreboard.Team -object Tcoww : JavaPlugin() { +class Tcoww : JavaPlugin() { + init { + instance = this + } + override fun onEnable() { ConfigurationSerialization.registerClass(WerewolfSkin::class.java) @@ -61,4 +65,8 @@ object Tcoww : JavaPlugin() { Role.registerRole(Hunter) Role.registerRole(Witch) } + + companion object { + lateinit var instance: Tcoww + } } diff --git a/src/main/kotlin/fr/azur/tcoww/commands/Exclude.kt b/src/main/kotlin/fr/azur/tcoww/commands/Exclude.kt index 4c596e5..3d9becb 100644 --- a/src/main/kotlin/fr/azur/tcoww/commands/Exclude.kt +++ b/src/main/kotlin/fr/azur/tcoww/commands/Exclude.kt @@ -1,15 +1,17 @@ package fr.azur.tcoww.commands import com.mojang.brigadier.Command +import com.mojang.brigadier.tree.LiteralCommandNode import fr.azur.tcoww.game.Game import fr.azur.tcoww.utils.Players.kill +import io.papermc.paper.command.brigadier.CommandSourceStack import io.papermc.paper.command.brigadier.Commands import io.papermc.paper.command.brigadier.argument.ArgumentTypes import io.papermc.paper.command.brigadier.argument.resolvers.PlayerProfileListResolver import org.bukkit.Bukkit object Exclude { - val root = + val root: LiteralCommandNode = Commands .literal("exclude") .requires { sender -> diff --git a/src/main/kotlin/fr/azur/tcoww/commands/GameCommand.kt b/src/main/kotlin/fr/azur/tcoww/commands/GameCommand.kt index 964f9f6..622994a 100644 --- a/src/main/kotlin/fr/azur/tcoww/commands/GameCommand.kt +++ b/src/main/kotlin/fr/azur/tcoww/commands/GameCommand.kt @@ -75,7 +75,7 @@ object GameCommand { val menu = GameConfig(players.size) executor.openInventory(menu.inventory) menu.future.thenAccept { - val dialog = createDialog(Tcoww, executor.world, players, it) + val dialog = createDialog(Tcoww.instance, executor.world, players, it) executor.showDialog(dialog) } } diff --git a/src/main/kotlin/fr/azur/tcoww/events/GameEvents.kt b/src/main/kotlin/fr/azur/tcoww/events/GameEvents.kt index b7ea9cd..3f8b210 100644 --- a/src/main/kotlin/fr/azur/tcoww/events/GameEvents.kt +++ b/src/main/kotlin/fr/azur/tcoww/events/GameEvents.kt @@ -48,9 +48,9 @@ object GameEvents : Listener { if (current.timeGestion.phase == NightLightCycle.Phase.NIGHT) { backLocation[player.uniqueId] = player.location - val lobby = Tcoww.config.getLocation("lobby-location") + val lobby = Tcoww.instance.config.getLocation("lobby-location") Bukkit.getScheduler().runTaskLater( - Tcoww, + Tcoww.instance, Runnable { if (lobby != null) { player.teleport(lobby) diff --git a/src/main/kotlin/fr/azur/tcoww/events/PhaseEvents.kt b/src/main/kotlin/fr/azur/tcoww/events/PhaseEvents.kt index 958ad0b..0855c31 100644 --- a/src/main/kotlin/fr/azur/tcoww/events/PhaseEvents.kt +++ b/src/main/kotlin/fr/azur/tcoww/events/PhaseEvents.kt @@ -85,7 +85,7 @@ object PhaseEvents : Listener { Bukkit.getPlayer(uuid)?.let { votedPlayer -> votedPlayer.fireTicks = 1200 Bukkit.getScheduler().runTaskLater( - Tcoww, + Tcoww.instance, Runnable { votedPlayer.health = 0.0 }, @@ -118,7 +118,7 @@ object PhaseEvents : Listener { } Bukkit.getScheduler().runTaskLater( - Tcoww, + Tcoww.instance, Runnable { val openBed = current.beds @@ -148,7 +148,7 @@ object PhaseEvents : Listener { } } }, - Tcoww.config.getLong("player-sleep"), + Tcoww.instance.config.getLong("player-sleep"), ) } diff --git a/src/main/kotlin/fr/azur/tcoww/events/ToolsEvents.kt b/src/main/kotlin/fr/azur/tcoww/events/ToolsEvents.kt index c744a58..230ada9 100644 --- a/src/main/kotlin/fr/azur/tcoww/events/ToolsEvents.kt +++ b/src/main/kotlin/fr/azur/tcoww/events/ToolsEvents.kt @@ -28,7 +28,7 @@ object ToolsEvents : Listener { if (interactLoc != null) { if (interactLoc.block.isBed()) { val list = - Tcoww.config + Tcoww.instance.config .getList("bed-locations") .orEmpty() .mapNotNull { it as? Location } @@ -38,8 +38,8 @@ object ToolsEvents : Listener { if (!list.contains(block.location)) { list.add(block.location) - Tcoww.config.set("bed-locations", list) - Tcoww.saveConfig() + Tcoww.instance.config.set("bed-locations", list) + Tcoww.instance.saveConfig() event.player.sendMessage( Component.text("Bed location add.", NamedTextColor.LIGHT_PURPLE), ) @@ -63,8 +63,8 @@ object ToolsEvents : Listener { interactLoc.x = interactLoc.blockX.toDouble() interactLoc.y = interactLoc.blockY.toDouble() + 1 interactLoc.z = interactLoc.blockZ.toDouble() - Tcoww.config.set("spawn-location", interactLoc) - Tcoww.saveConfig() + Tcoww.instance.config.set("spawn-location", interactLoc) + Tcoww.instance.saveConfig() event.player.sendMessage(Component.text("Spawn location set.", NamedTextColor.LIGHT_PURPLE)) } } @@ -76,8 +76,8 @@ object ToolsEvents : Listener { interactLoc.x = interactLoc.blockX.toDouble() interactLoc.y = interactLoc.blockY.toDouble() + 1 interactLoc.z = interactLoc.blockZ.toDouble() - Tcoww.config.set("lobby-location", interactLoc) - Tcoww.saveConfig() + Tcoww.instance.config.set("lobby-location", interactLoc) + Tcoww.instance.saveConfig() event.player.sendMessage(Component.text("Lobby location set.", NamedTextColor.LIGHT_PURPLE)) } } diff --git a/src/main/kotlin/fr/azur/tcoww/game/Game.kt b/src/main/kotlin/fr/azur/tcoww/game/Game.kt index d8ab837..b77ef46 100644 --- a/src/main/kotlin/fr/azur/tcoww/game/Game.kt +++ b/src/main/kotlin/fr/azur/tcoww/game/Game.kt @@ -25,7 +25,7 @@ class Game( val timeGestion: NightLightCycle val remainingPlayer = players.toMutableList() val beds = - Tcoww.config + Tcoww.instance.config .getList("bed-locations") .orEmpty() .mapNotNull { it as? Location } diff --git a/src/main/kotlin/fr/azur/tcoww/roles/Werewolf.kt b/src/main/kotlin/fr/azur/tcoww/roles/Werewolf.kt index dc61499..3a7bf37 100644 --- a/src/main/kotlin/fr/azur/tcoww/roles/Werewolf.kt +++ b/src/main/kotlin/fr/azur/tcoww/roles/Werewolf.kt @@ -27,6 +27,6 @@ object Werewolf : Role { override fun handle(player: Player) { val tfItem = CustomItems.WereWolfTransformItem.item player.inventory.addItem(tfItem) - player.setCooldown(tfItem, ((Tcoww.config.getInt("duration.day") + Tcoww.config.getInt("duration.day")) * 20)) + player.setCooldown(tfItem, ((Tcoww.instance.config.getInt("duration.day") + Tcoww.instance.config.getInt("duration.day")) * 20)) } } diff --git a/src/main/kotlin/fr/azur/tcoww/ui/GameConfig.kt b/src/main/kotlin/fr/azur/tcoww/ui/GameConfig.kt index 08f9449..c6efda6 100644 --- a/src/main/kotlin/fr/azur/tcoww/ui/GameConfig.kt +++ b/src/main/kotlin/fr/azur/tcoww/ui/GameConfig.kt @@ -22,14 +22,14 @@ class GameConfig( val future = CompletableFuture>() private val inventory = - Tcoww.server.createInventory(this, size, Component.text("Game Config.", NamedTextColor.GREEN)).apply { + Tcoww.instance.server.createInventory(this, size, Component.text("Game Config.", NamedTextColor.GREEN)).apply { Role.registerRoles.values.sortedBy { it.order }.onEachIndexed { index, role -> setItem(index, createItem(index, role)) } } init { - val werewolfCount = ceil((playerCount * (Tcoww.config.getInt("werewolf-default-percentage") / 100f))).toInt() + val werewolfCount = ceil((playerCount * (Tcoww.instance.config.getInt("werewolf-default-percentage") / 100f))).toInt() editItem(0, playerCount - werewolfCount) editItem(1, werewolfCount) } diff --git a/src/main/kotlin/fr/azur/tcoww/ui/PlayerSelectMenu.kt b/src/main/kotlin/fr/azur/tcoww/ui/PlayerSelectMenu.kt index 45ab050..011b386 100644 --- a/src/main/kotlin/fr/azur/tcoww/ui/PlayerSelectMenu.kt +++ b/src/main/kotlin/fr/azur/tcoww/ui/PlayerSelectMenu.kt @@ -19,7 +19,7 @@ class PlayerSelectMenu( val future = CompletableFuture() private val inventory = - Tcoww.server.createInventory(this, size, Component.text("Select a player.", NamedTextColor.GREEN)).apply { + Tcoww.instance.server.createInventory(this, size, Component.text("Select a player.", NamedTextColor.GREEN)).apply { players.forEachIndexed { index, player -> val item = ItemStack.of(Material.PLAYER_HEAD).apply { diff --git a/src/main/kotlin/fr/azur/tcoww/utils/DataKeys.kt b/src/main/kotlin/fr/azur/tcoww/utils/DataKeys.kt index a943748..29dc903 100644 --- a/src/main/kotlin/fr/azur/tcoww/utils/DataKeys.kt +++ b/src/main/kotlin/fr/azur/tcoww/utils/DataKeys.kt @@ -4,8 +4,8 @@ import fr.azur.tcoww.Tcoww import org.bukkit.NamespacedKey data object DataKeys { - val PlayerDead = NamespacedKey(Tcoww, "dead") - val PowerItems = NamespacedKey(Tcoww, "power") - val Insomnia = NamespacedKey(Tcoww, "insomnia") - val ToolsItems = NamespacedKey(Tcoww, "tools") + val PlayerDead = NamespacedKey(Tcoww.instance, "dead") + val PowerItems = NamespacedKey(Tcoww.instance, "power") + val Insomnia = NamespacedKey(Tcoww.instance, "insomnia") + val ToolsItems = NamespacedKey(Tcoww.instance, "tools") } diff --git a/src/main/kotlin/fr/azur/tcoww/utils/skins/Manager.kt b/src/main/kotlin/fr/azur/tcoww/utils/skins/Manager.kt index 7fd32ef..a10fd1c 100644 --- a/src/main/kotlin/fr/azur/tcoww/utils/skins/Manager.kt +++ b/src/main/kotlin/fr/azur/tcoww/utils/skins/Manager.kt @@ -23,7 +23,7 @@ object Manager { fun reloadSkin() { val skinsValue = - Tcoww.config + Tcoww.instance.config .getList("werewolf-skins") .orEmpty() .mapNotNull { it as? WerewolfSkin }