From 1347c70a711b901a97c4add48553d52806cf9ee3 Mon Sep 17 00:00:00 2001 From: ceikry Date: Wed, 4 Aug 2021 17:40:58 -0500 Subject: [PATCH] Fixed an exploit related to farming --- .../game/node/entity/skill/farming/CropHarvester.kt | 13 +++++++++++-- .../rs09/game/node/entity/skill/farming/Patch.kt | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CropHarvester.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CropHarvester.kt index 892394d6b..15f7331e3 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CropHarvester.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CropHarvester.kt @@ -16,6 +16,8 @@ import org.rs09.consts.Items @Initializable class CropHarvester : OptionHandler() { + val nonLives = arrayOf(PatchType.HERB, PatchType.CACTUS, PatchType.BELLADONNA, PatchType.HOPS, PatchType.ALLOTMENT,PatchType.EVIL_TURNIP) + val spadeAnim = Animation(830) override fun newInstance(arg: Any?): Plugin { @@ -67,8 +69,15 @@ class CropHarvester : OptionHandler() { delay = 2 player.inventory.add(Item(plantable.harvestItem,1)) player.skills.addExperience(Skills.FARMING,plantable.harvestXP) - patch.rollLivesDecrement(ContentAPI.getDynLevel(player, Skills.FARMING), requiredItem == Items.MAGIC_SECATEURS_7409) - return patch.cropLives <= 0 + if(patch.patch.type in nonLives){ + patch.harvestAmt-- + } else { + patch.rollLivesDecrement( + ContentAPI.getDynLevel(player, Skills.FARMING), + requiredItem == Items.MAGIC_SECATEURS_7409 + ) + } + return patch.cropLives <= 0 || patch.harvestAmt <= 0 } }) diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Patch.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Patch.kt index e178d8ae8..070e38617 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Patch.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Patch.kt @@ -16,6 +16,10 @@ class Patch(val player: Player, val patch: FarmingPatch, var plantable: Plantabl var cropLives = 3 fun setNewHarvestAmount() { + harvestAmt = when (plantable) { + Plantable.LIMPWURT_SEED, Plantable.WOAD_SEED -> 3 + else -> 1 + } cropLives = 3 }