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 {