From c7e734ce263a23c2fe016abe09b672e4e443ea2b Mon Sep 17 00:00:00 2001 From: _OfTeN_ Date: Wed, 10 Nov 2021 18:01:28 +0300 Subject: [PATCH] Added support for negative numbers to EcoSkillsPlayer#giveSkillExperience --- .../kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt index 6bb2239..89f1f3f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt @@ -92,6 +92,20 @@ fun Player.giveSkillExperience(skill: Skill, experience: Double, noMultiply: Boo Bukkit.getPluginManager().callEvent(levelUpEvent) this.giveSkillExperience(skill, overshoot, true) } + + else if (this.getSkillProgress(skill) < skill.getExpForLevel(level) && level >= 1) { + val overshoot = 0.0 + this.setSkillProgress(skill, 0.0) + this.setSkillLevel(skill, level - 1) + val levelUpEvent = PlayerSkillLevelUpEvent(this, skill, level - 1) + Bukkit.getPluginManager().callEvent(levelUpEvent) + this.giveSkillExperience(skill, overshoot, true) + } + + if (this.getSkillProgress(skill) < 0) { + this.setSkillProgress(skill, 0.0) + } + } fun OfflinePlayer.getSkillLevel(skill: Skill): Int {