diff --git a/src/main/kotlin/club/mcscrims/speedhg/config/MessageConfig.kt b/src/main/kotlin/club/mcscrims/speedhg/config/MessageConfig.kt index 84b0d19..17c312a 100644 --- a/src/main/kotlin/club/mcscrims/speedhg/config/MessageConfig.kt +++ b/src/main/kotlin/club/mcscrims/speedhg/config/MessageConfig.kt @@ -16,12 +16,30 @@ data class MessageConfig( val commandMessages: Map = getCommandMessages(), @ConfigField(name = "death", description = "Death messages") - val deathMessages: Map> = getDeathMessages() + val deathMessages: Map> = getDeathMessages(), + + @ConfigField(name = "kits", description = "Kit messages") + val kitMessages: Map = getKitMessages(), + + @ConfigField(name = "kits-default", description = "Default kit messages") + val defaultKitMessages: Map = getDefaultKitMessages() ) { + data class KitConfig( + val name: String = "", + val description: List, + val items: List, + val messages: Map + ) + + data class KitItemConfig( + val itemName: String, + val playStyleNames: Map + ) + fun getAllMessages(): Map { - return defaultMessages + commandMessages + return defaultMessages + commandMessages + defaultKitMessages + kitMessages.flatMap { it.value.messages.entries }.associate { it.key to it.value } } fun getListMessages(): Map> @@ -29,6 +47,14 @@ data class MessageConfig( return deathMessages } + fun getKitItemNames( + kit: String, + itemKey: String + ): Map? + { + return kitMessages[ kit ]?.items?.find { it.itemName == itemKey }?.playStyleNames + } + } private fun getDefaultMessages(): Map = mapOf( @@ -36,7 +62,8 @@ private fun getDefaultMessages(): Map = mapOf( "default.no_permission" to "%prefix% You don't have permission to do that!", "default.player_not_found" to "%prefix% This player could not be found!", "default.command_cooldown" to "%prefix% Please wait {time} seconds before using this command again!", - "default.reload" to "%prefix% Successfully reloaded the plugin." + "default.reload" to "%prefix% Successfully reloaded the plugin.", + "default.only_players" to "%prefix% Only players can execute this command." ) private fun getCommandMessages(): Map = mapOf( @@ -53,4 +80,115 @@ private fun getDeathMessages(): Map> = mapOf( "world" to listOf( " {player} has died!" ) +) + +private fun getDefaultKitMessages(): Map = mapOf( + "kits.missingHits" to "" +) + +private fun getKitMessages(): Map = mapOf( + "anchor" to MessageConfig.KitConfig( + name = "Anchor", + description = listOf( + "Create an anchor where", + "you are lookin and gain no", + "knockback in your radius." + ), + items = listOf(MessageConfig.KitItemConfig( + itemName = "anvil", + playStyleNames = mapOf( + "offensive" to "Anchor (right-click)", + "defensive" to "Anchor (right-click)" + ) + )), + messages = mapOf( + "tooFarAway" to "%prefix% You can only place your anchor in a {radius} block radius!", + "alreadyActivated" to "%prefix% You have already placed an anchor!", + "broken" to "%prefix% " + ) + ), + "armorer" to MessageConfig.KitConfig( + name = "Armorer", + description = listOf( + "Gain a stronger armor the", + "more kills you gain. Every 2", + "kills your armor gets better.", + "All the way up to iron." + ), + items = emptyList(), + messages = mapOf( + "upgrade.normal" to "%prefix% Your armor has been upgraded to {armorType}.", + "upgrade.enchanted" to "%prefix% Your armor has been enchanted." + ) + ), + "blackpanther" to MessageConfig.KitConfig( + name = "Black Panther", + description = listOf( + "Use your abilities to either", + "do more damage and push enemies", + "away or jump on enemies and", + "give them instant damage." + ), + items = listOf( + MessageConfig.KitItemConfig( + itemName = "blackDye", + playStyleNames = mapOf( + "offensive" to "Push (right-click)", + "defensive" to "Wakanda Forever! (right-click)" + ) + ), + MessageConfig.KitItemConfig( + itemName = "blazePowder", + playStyleNames = mapOf( + "offensive" to "Extra Damage (right-click)", + "defensive" to "Extra Damage (right-click)" + ) + ) + ), + messages = mapOf( + "wakandaForever.hit" to "%prefix% You have hit {hit} players with WAKANDA FOREVER!", + "extraDamage.activated" to "%prefix% Your extra damage is now activated.", + "extraDamage.deactivated" to "%prefix% Your extra damage is now deactivated." + ) + ), + "blitzcrank" to MessageConfig.KitConfig( + name = "Blitzcrank", + description = listOf( + "Use your abilities to", + "slow down enemies and", + "either stun or hook them." + ), + items = listOf( + MessageConfig.KitItemConfig( + itemName = "hots", + playStyleNames = mapOf( + "defensive" to "Slow (right-click)", + "offensive" to "Slow (right-click)" + ) + ), + MessageConfig.KitItemConfig( + itemName = "fishingrod", + playStyleNames = mapOf( + "defensive" to "Hook (right-click)", + "offensive" to "Hook (right-click)" + ) + ), + MessageConfig.KitItemConfig( + itemName = "pufferfish", + playStyleNames = mapOf( + "defensive" to "Stun (right-click)", + "offensive" to "Stun (right-click)" + ) + ) + ), + messages = mapOf( + "ultimate.target" to "%prefix% You have been slowed by {player}!", + "ultimate.player" to "%prefix% You have slowed {nearby} players.", + "no_player_in_sight" to "%prefix% There is no player in your radius and/or sight to hook!", + "hook.player" to "%prefix% You have hooked {player}!", + "hook.target" to "%prefix% You have been hooked to a Blitzcrank!", + "stun.target" to "%prefix% You have been stunned!", + "stun.player" to "%prefix% You have stunned {nearby} nearby players." + ) + ) ) \ No newline at end of file