From 772a66d052598531e1a2d37e265cb18f04dbae2a Mon Sep 17 00:00:00 2001 From: Auxilor Date: Thu, 9 Sep 2021 10:37:11 +0100 Subject: [PATCH] Added level up commands --- .../com/willfp/ecoskills/skills/Skill.kt | 21 +++++++++++++++++++ .../skills/SkillLevellingListener.kt | 2 ++ .../src/main/resources/skills/alchemy.yml | 2 ++ .../src/main/resources/skills/armory.yml | 2 ++ .../src/main/resources/skills/combat.yml | 2 ++ .../src/main/resources/skills/enchanting.yml | 2 ++ .../src/main/resources/skills/exploration.yml | 2 ++ .../src/main/resources/skills/farming.yml | 2 ++ .../src/main/resources/skills/fishing.yml | 2 ++ .../src/main/resources/skills/mining.yml | 2 ++ .../src/main/resources/skills/woodcutting.yml | 2 ++ 11 files changed, 41 insertions(+) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/Skill.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/Skill.kt index f7eb36a..91839cc 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/Skill.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/Skill.kt @@ -10,6 +10,7 @@ import com.willfp.ecoskills.config.SkillConfig import com.willfp.ecoskills.effects.Effect import com.willfp.ecoskills.effects.Effects import com.willfp.ecoskills.stats.Stats +import org.bukkit.Bukkit import org.bukkit.NamespacedKey import org.bukkit.entity.Player import org.bukkit.event.Listener @@ -27,6 +28,7 @@ abstract class Skill( lateinit var gui: SkillGUI var maxLevel: Int = 50 private val rewards = mutableListOf() + private val levelCommands = mutableMapOf>() // Cached values private val guiLoreCache = mutableMapOf>() @@ -55,6 +57,17 @@ abstract class Skill( } } + levelCommands.clear() + for (string in config.getStrings("rewards.level-commands", false)) { + val split = string.split(":") + val level = split[0].toInt() + val command = split[1] + + val commands = levelCommands[level] ?: mutableListOf() + commands.add(command) + levelCommands[level] = commands + } + PlaceholderEntry( id, { player -> player.getSkillLevel(this).toString() }, @@ -201,6 +214,14 @@ abstract class Skill( return lore } + fun executeLevelCommands(player: Player, level: Int) { + val commands = levelCommands[level] ?: emptyList() + + for (command in commands) { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replace("%player%", player.name)) + } + } + open fun postUpdate() { // Override when needed } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillLevellingListener.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillLevellingListener.kt index d0e212d..3f53ebd 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillLevellingListener.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillLevellingListener.kt @@ -31,5 +31,7 @@ class SkillLevellingListener : Listener { } } } + + skill.executeLevelCommands(player, to) } } \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/skills/alchemy.yml b/eco-core/core-plugin/src/main/resources/skills/alchemy.yml index 29d2897..0aa3407 100644 --- a/eco-core/core-plugin/src/main/resources/skills/alchemy.yml +++ b/eco-core/core-plugin/src/main/resources/skills/alchemy.yml @@ -29,6 +29,8 @@ rewards: - "efficient_brewing::1:10:100" - "mystic_resilience::1" + level-commands: [] + # The chat messages to send on level up chat-messages: 1: diff --git a/eco-core/core-plugin/src/main/resources/skills/armory.yml b/eco-core/core-plugin/src/main/resources/skills/armory.yml index 50ac098..3a73dba 100644 --- a/eco-core/core-plugin/src/main/resources/skills/armory.yml +++ b/eco-core/core-plugin/src/main/resources/skills/armory.yml @@ -29,6 +29,8 @@ rewards: - "infernal_resistance::1" - "bravery::1:10:100" + level-commands: [] + # The chat messages to send on level up chat-messages: 1: diff --git a/eco-core/core-plugin/src/main/resources/skills/combat.yml b/eco-core/core-plugin/src/main/resources/skills/combat.yml index 460b8a8..26dc2cc 100644 --- a/eco-core/core-plugin/src/main/resources/skills/combat.yml +++ b/eco-core/core-plugin/src/main/resources/skills/combat.yml @@ -32,6 +32,8 @@ rewards: - "strong_impact::1:10:100" - "endangering::1:20:100" + level-commands: [] + # The chat messages to send on level up chat-messages: 1: diff --git a/eco-core/core-plugin/src/main/resources/skills/enchanting.yml b/eco-core/core-plugin/src/main/resources/skills/enchanting.yml index bfc6abf..51202b6 100644 --- a/eco-core/core-plugin/src/main/resources/skills/enchanting.yml +++ b/eco-core/core-plugin/src/main/resources/skills/enchanting.yml @@ -29,6 +29,8 @@ rewards: - "reimbursement::1" - "overcompensation::1:10:100" + level-commands: [] + # The chat messages to send on level up chat-messages: 1: diff --git a/eco-core/core-plugin/src/main/resources/skills/exploration.yml b/eco-core/core-plugin/src/main/resources/skills/exploration.yml index 9b2ec8b..25324a9 100644 --- a/eco-core/core-plugin/src/main/resources/skills/exploration.yml +++ b/eco-core/core-plugin/src/main/resources/skills/exploration.yml @@ -29,6 +29,8 @@ rewards: - "dodging::1" - "accelerated_escape::1:10:100" + level-commands: [] + # The chat messages to send on level up chat-messages: 1: diff --git a/eco-core/core-plugin/src/main/resources/skills/farming.yml b/eco-core/core-plugin/src/main/resources/skills/farming.yml index 8d1c9e7..fd1a95b 100644 --- a/eco-core/core-plugin/src/main/resources/skills/farming.yml +++ b/eco-core/core-plugin/src/main/resources/skills/farming.yml @@ -29,6 +29,8 @@ rewards: - "satiation::1" - "golden_yield::1:10:100" + level-commands: [] + # The chat messages to send on level up chat-messages: 1: diff --git a/eco-core/core-plugin/src/main/resources/skills/fishing.yml b/eco-core/core-plugin/src/main/resources/skills/fishing.yml index 2c707fb..f35bc9b 100644 --- a/eco-core/core-plugin/src/main/resources/skills/fishing.yml +++ b/eco-core/core-plugin/src/main/resources/skills/fishing.yml @@ -23,6 +23,8 @@ rewards: - "wisdom::1" - "eye_of_the_depths::1" + level-commands: [] + # The chat messages to send on level up chat-messages: 1: diff --git a/eco-core/core-plugin/src/main/resources/skills/mining.yml b/eco-core/core-plugin/src/main/resources/skills/mining.yml index 308e6cb..43b645f 100644 --- a/eco-core/core-plugin/src/main/resources/skills/mining.yml +++ b/eco-core/core-plugin/src/main/resources/skills/mining.yml @@ -29,6 +29,8 @@ rewards: - "spelunking::1:10:100" - "dynamic_mining::1" + level-commands: [] + # The chat messages to send on level up chat-messages: 1: diff --git a/eco-core/core-plugin/src/main/resources/skills/woodcutting.yml b/eco-core/core-plugin/src/main/resources/skills/woodcutting.yml index 450fcbb..6067cd7 100644 --- a/eco-core/core-plugin/src/main/resources/skills/woodcutting.yml +++ b/eco-core/core-plugin/src/main/resources/skills/woodcutting.yml @@ -26,6 +26,8 @@ rewards: - "craftsmanship::1" - "master_lumberjack::1" + level-commands: [] + # The chat messages to send on level up chat-messages: 1: