diff --git a/Server/src/main/content/global/skill/herblore/HerbCleanListener.kt b/Server/src/main/content/global/skill/herblore/HerbCleanListener.kt index 7ba8cfe5a..3189ba640 100644 --- a/Server/src/main/content/global/skill/herblore/HerbCleanListener.kt +++ b/Server/src/main/content/global/skill/herblore/HerbCleanListener.kt @@ -7,6 +7,9 @@ import core.game.node.entity.skill.Skills import core.game.node.item.Item import java.util.* +import core.game.system.task.Pulse + + /** * Dirty herb cleaning listener * @author Woah @@ -19,16 +22,35 @@ class HerbCleanListener : InteractionListener { val herb: Herbs = Herbs.forItem(node as Item) ?: return@on true if (getDynLevel(player, Skills.HERBLORE) < herb.level) { - sendMessage(player, "You cannot clean this herb. You need a Herblore level of " + herb.level + " to attempt this.") + sendMessage(player, "You need level " + herb.level + " Herblore to clean the " + herb.product.name.replace("Clean", "Grimy") + ".") return@on true } val exp = herb.experience + + player.pulseManager.run(object : Pulse() { + var counter = 0 + override fun pulse(): Boolean { + if (amountInInventory(player, node.asItem().id) == 0 ) + return true + if(removeItem(player, node.asItem().id)) { + addItem(player, herb.product.id) + rewardXP(player, Skills.HERBLORE, exp) + playAudio(player, 5153) + //sendMessage(player, "You clean the dirt from the " + herb.product.name.lowercase(Locale.getDefault()).replace("clean", "").trim { it <= ' ' } + " leaf.") + } + return false + } + }) + return@on true + + /* Vanilla actions, replaced by pulse above replaceSlot(player, node.asItem().slot, herb.product, node.asItem()) rewardXP(player, Skills.HERBLORE, exp) playAudio(player, 5153) sendMessage(player, "You clean the dirt from the " + herb.product.name.lowercase(Locale.getDefault()).replace("clean", "").trim { it <= ' ' } + " leaf.") return@on true + */ } } } \ No newline at end of file