From c1358776808e7e64083079be76988bd70a1baa09 Mon Sep 17 00:00:00 2001
From: Syndromeramo <21965004-syndromeramo@users.noreply.gitlab.com>
Date: Tue, 7 Oct 2025 13:19:48 +0000
Subject: [PATCH] Catching a horned graahk now finishes the appropriate Karamja
task Checking the health of a fruit tree in Brimhaven now finishes the
appropriate Karamja task
---
.../src/main/content/global/skill/farming/HealthChecker.kt | 4 ++++
.../content/global/skill/hunter/pitfall/HunterPitfall.kt | 2 ++
.../core/game/node/entity/player/link/diary/DiaryType.java | 6 +++---
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/Server/src/main/content/global/skill/farming/HealthChecker.kt b/Server/src/main/content/global/skill/farming/HealthChecker.kt
index 23b53864b..eb6d03256 100644
--- a/Server/src/main/content/global/skill/farming/HealthChecker.kt
+++ b/Server/src/main/content/global/skill/farming/HealthChecker.kt
@@ -5,6 +5,7 @@ import core.cache.def.impl.SceneryDefinition
import core.game.interaction.OptionHandler
import core.game.node.Node
import core.game.node.entity.player.Player
+import core.game.node.entity.player.link.diary.DiaryType
import core.game.node.entity.skill.Skills
import core.plugin.Initializable
import core.plugin.Plugin
@@ -42,6 +43,9 @@ class HealthChecker : OptionHandler() {
}
PatchType.FRUIT_TREE_PATCH -> {
patch.setCurrentState(patch.getCurrentState() - 14)
+ if (fPatch == FarmingPatch.BRIMHAVEN_FRUIT_TREE) {
+ player.achievementDiaryManager.finishTask(player, DiaryType.KARAMJA, 1, 12)
+ }
sendMessage(player, "You examine the tree for signs of disease and find that it is in perfect health.")
}
PatchType.SPIRIT_TREE_PATCH -> {
diff --git a/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt b/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt
index f4959cbae..bdc9611a9 100644
--- a/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt
+++ b/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt
@@ -21,6 +21,7 @@ import org.rs09.consts.Items
import org.rs09.consts.NPCs
import core.game.interaction.InteractionListener
import core.game.interaction.IntType
+import core.game.node.entity.player.link.diary.DiaryType
import core.game.world.GameWorld
import org.rs09.consts.Sounds
@@ -262,6 +263,7 @@ class PitfallListeners : InteractionListener {
}
on(GRAAHK_PIT, IntType.SCENERY, "dismantle") { player, node ->
lootCorpse(player, node as Scenery, 240.0, Items.GRAAHK_FUR_10099, Items.TATTY_GRAAHK_FUR_10097)
+ player.achievementDiaryManager.finishTask(player, DiaryType.KARAMJA, 1, 13)
sendMessage(player, "You've caught a horned graahk!")
return@on true
}
diff --git a/Server/src/main/core/game/node/entity/player/link/diary/DiaryType.java b/Server/src/main/core/game/node/entity/player/link/diary/DiaryType.java
index a91f4b5bc..8a8e51827 100644
--- a/Server/src/main/core/game/node/entity/player/link/diary/DiaryType.java
+++ b/Server/src/main/core/game/node/entity/player/link/diary/DiaryType.java
@@ -34,14 +34,14 @@ public enum DiaryType {
"Use Vigroy and Hajedy's cart service",
"Earn 100% favour in the village of Tai Bwo Wannai Cleanup", // todo tai bwo wannai cleanup
"Cook a spider on stick", // todo tai bwo wannai cleanup
- "Charter the Lady of the Waves from Cairn Isle to Port Khazard", // todo verify
+ "Charter the Lady of the Waves from Cairn Isle to Port Khazard",
"Cut a log from a teak tree",
"Cut a log from a mahogany tree",
"Catch a karambwan", // todo need Tai Bwo Wannai Trio
"Exchange gems, a gout tuber, trading sticks for a machete", // todo
"Use the gnome glider to travel to Karamja",
- "Grow a healthy fruit tree in the patch near Brimhaven", // todo verify
- "Trap a Horned Graahk", // todo need to implement pitfall trapping
+ "Grow a healthy fruit tree in the patch near Brimhaven",
+ "Trap a Horned Graahk",
"Chop the vines to gain deeper access to Brimhaven Dungeon",
"Cross the lava using the stepping stones within Brimhaven
Dungeon",
"Climb the stairs within Brimhaven Dungeon",