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 { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/commands/CommandRecount.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/commands/CommandRecount.kt index 85ae8e3..9224f47 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/commands/CommandRecount.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/commands/CommandRecount.kt @@ -54,7 +54,7 @@ class CommandRecount(plugin: EcoPlugin): Subcommand( } sender.sendMessage( plugin.langYml.getMessage("recounted-player") - .replace("%player%", player.name) + .replace("%player%", player.displayName) .replace("%effect%", "&6ALL") .replace("%level%", total.toString()) ) @@ -65,7 +65,7 @@ class CommandRecount(plugin: EcoPlugin): Subcommand( } else { sender.sendMessage( plugin.langYml.getMessage("recounted-player") - .replace("%player%", player.name) + .replace("%player%", player.displayName) .replace("%effect%", effect.id) .replace("%level%", recount(player, effect).toString()) ) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMagneticRod.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMagneticRod.kt index eca74e1..851f8fa 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMagneticRod.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMagneticRod.kt @@ -1,5 +1,6 @@ package com.willfp.ecoskills.effects.effects +import com.willfp.eco.util.NumberUtils import com.willfp.ecoskills.effects.Effect import com.willfp.ecoskills.getEffectLevel import org.bukkit.event.EventHandler @@ -10,7 +11,7 @@ class EffectMagneticRod : Effect( "magnetic_rod" ) { override fun formatDescription(string: String, level: Int): String { - return string.replace("%percentage%", (level * config.getDouble("speed-per-level")).toString()) + return string.replace("%percentage%", NumberUtils.format(level * config.getDouble("speed-per-level"))) } @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)