Merged
Conversation
… cape teleport (#386) - Add Prifddinas Crystal tree patch (requires 74 Farming + Song of the Elves) handled after Kastori and before Avium Savannah in the run order - Startup validation aborts with a dialog if the player lacks the Farming level or quest completion when the Prifddinas patch is enabled - Withdraw the Construction cape from the bank when the player has 99 Construction, to support POH/teleport options - Bump plugin version to 1.1.2 Co-authored-by: dev <dev@riskless.id>
Mahogany tree protection was a copy-paste of Teak's limpwurt root payment. The actual protection cost is 25 Yanillian hops, so update the MAHOGANY enum to match. Bumps plugin version to 1.1.3. Co-authored-by: dev <dev@riskless.id>
* Reduce code smell, implement sawmill vouchers and Lazy Mode * Change profit calculation to be more accurate, extended Logs enum to prevent weird bank withdrawal shenanigans (tried withdrawing yew logs) * undo main runner change * re-add microbot.java. whoops. * Karam fix (#351) * fix: karambwan fairy ring return Made-with: Cursor * plugin now clicks on fairy ring to get back to karams * commit * fix(barrows): POH banking, Ferox escape, and tablet timing - POH: require instanced world view, use nearestOnClientThread, cap portal retries, only nexus-shutdown when no normal portal - outOfSupplies: Ferox via ring of dueling (equipped name check, inventory rings, rub/dialogue); treat POH as needing Ferox hop when walker cannot - Close bank before Teleport-to-house tablet (travel and chest leave) so the tablet is not used while the bank is still open --------- Co-authored-by: chsami <sami.chkhachkhi@gmail.com> Co-authored-by: stonksCode <99895926+stonksCode@users.noreply.github.com> Co-authored-by: irkedMATT <59846844+irkedMATT@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…cks in stopAndLog method
…ing (#393) Standalone firemaking plugin that scans surrounding tiles to find the best east-west line of open ground, lights fires walking west, banks, and adapts around existing fires and obstacles on return. Supports Bank Heist briefcase for instant banking. Adds [DV] prefix to PluginConstants for plugin branding. Co-authored-by: dev <dev@riskless.id>
Adds an optional "League mode (anti-AFK)" toggle that presses a random arrow key whenever the client's idle ticks approach its idle-timeout threshold. This keeps the session alive on Leagues where the auto-bank relic lets you mine indefinitely without any interaction that would otherwise reset the idle timer. Co-authored-by: dev <dev@riskless.id>
…bility (#391) * fix(BirdHunter): trap ownership, safer drops, area bugs (v1.0.2) - Track own traps by spatial proximity at GameObjectSpawned (RuneLite Hunter pattern) so the bot ignores other players' bird snares and only interacts with its own. Seed lastTickLocalPlayerLocation on the client thread at startUp to close a race where the first laid snare was never recorded and the bot got stuck in an infinite movePlayerOffObject loop on its own untracked trap. - Strict drop whitelist: only raw bird meat, plus bones when bury-bones is off. Replaces dropAllExcept(keepList) which could wipe the entire inventory if the keep list was misconfigured. - walkBackToArea picks the nearest tile in the hunting area instead of a random one. - Hunting area centered correctly via (2*radius+1)^2 instead of the off-center (radius^2+1)^2 that biased NE. * fix(BirdHunter): proper error stop, click retry, loot-agnostic placement - Missing-snares precondition now uses the canonical Microbot pattern (showMessage + stopPlugin from inside the scheduled loop) so the plugin actually stops instead of silently idling with the toggle on. - Remove keepItemNames config — unused after the strict drop whitelist (raw bird meat + bones when bury-bones is off). - interactWithTrap retries the click up to 3x and exits as soon as the inventory changes. Prior single-click + 7s inventory-changes wait + 2×2s gaussian sleeps stalled ~13s per missed click; now ~1-2s on hit, ~8s worst case. - setTrap uses isGameObjectAt instead of Rs2Player.isStandingOnGameObject because the latter also returns true for ground items. Dropped loot doesn't actually block snare placement, so the bot was needlessly walking off loot tiles.
* feat(PluginConstants): add PERT prefix for LeftClickCastPlugin Yellow [P] prefix in the #FFFF00 color family, matching the existing HTML-wrapped prefix convention. * feat(leftclickcast): add PertTargetSpell enum Wraps every target-castable MagicAction (autocast Strike->Surge, ancient Rush/Burst/Blitz/Barrage, non-autocast combat, Arceuus offensives, utility target spells) behind a minimal display-name shape for the plugin config dropdown. * feat(leftclickcast): add LeftClickCastConfig Three items: enabled (master switch), spell (PertTargetSpell dropdown, default Fire Strike), requireMagicWeapon (staff gate). * feat(leftclickcast): add LeftClickCastPlugin onMenuEntryAdded inserts a Cast entry above the Attack entry for attackable NPCs, gated by the enabled flag, a non-null configured spell, and (optionally) a magic-weapon equip check via varbit 357. Cast is dispatched through Rs2Magic.castOn off-thread via CompletableFuture because Global.sleepUntil is a no-op on the client thread and would otherwise silently drop the cast. * docs(leftclickcast): add plugin README Covers purpose, config reference, limitations (no rune or spellbook auto-management, staff-only default, PvP out of scope), and the full supported-spells list. * chore(debug): register LeftClickCastPlugin in debugPlugins * fix(leftclickcast): use VarbitID.COMBAT_WEAPON_CATEGORY net.runelite.api.Varbits is @deprecated in favor of gameval identifier classes. Same varbit (357), no behavior change. * fix(leftclickcast): move to PostMenuSort + runtime magic-weapon check Two bugs found during manual verification: 1. The static weapon-type set (22/23/26/27) from the design doc was wrong — real STAFF value (at least on this client) is 18. Replaced with a runtime check that reads the weapon's attack-style struct via EnumID.WEAPON_STYLES + ParamID.ATTACK_STYLE_NAME and flags the weapon as magic if any style is Casting or Defensive Casting. Mirrors core AttackStylesPlugin and auto-covers future weapons. 2. Mutating the Attack entry inside onMenuEntryAdded did not survive the game's menu sort pass — entries of type RUNELITE get sorted below NPC_* entries, so left-click kept firing Attack/Walk-Here. Moved the mutation to onPostMenuSort (fires after the sort) and swap the entry to the tail of the array — tail slot is the left-click action in RuneLite's menu model. * feat(leftclickcast): support Players (wilderness / PvP) Scan loop now accepts Attack entries on either NPCs or Players. Dispatch wraps NPCs in Rs2NpcModel; raw Player is passed through, which Rs2Magic.castOn handles via its instanceof Player branch. * feat(leftclickcast): five spell slots with hotkey-driven active slot Adds five `@ConfigItem` spell slots, each with a corresponding Keybind, grouped under "Spell Slots" and "Hotkeys" config sections. A `HotkeyListener` per slot is registered on startUp and unregistered on shutDown; pressing a bound hotkey sets the in-memory active slot and (optionally) posts a chat message with the new spell's display name. The menu-sort hot path now reads the active slot's spell instead of the legacy single `spell` key. The legacy `spell` key remains defined so existing configs aren't invalidated, and is migrated into `slot1Spell` on startUp when slot 1 is still at its default — existing users keep their choice without manual action. Active slot is session-local and resets to slot 1 on every startUp. Bumps plugin version to 1.1.0. * feat(leftclickcast): fast-path cast dispatch via dual menuAction Replaces the async Rs2Magic.castOn pipeline (tab switch + 150-300ms sleep + sleepUntil(isWidgetSelected) + NPC interact) with two synchronous client.menuAction calls fired back-to-back: one WIDGET_TARGET to select the spell client-side, one WIDGET_TARGET_ON_NPC / WIDGET_TARGET_ON_PLAYER to dispatch it on the hovered target. Both packets queue on the same event-loop tick, so the server processes selection and cast on the same game tick — indistinguishable from "I pre-selected the spell and clicked the target". Falls back to Rs2Magic.castOn when the spellbook widget (group 218) isn't loaded yet (first cast after login without opening Magic tab), nudging Rs2Tab.switchTo(InterfaceTab.MAGIC) so subsequent clicks take the fast path. Also falls back when the selected spell isn't on the active spellbook (modern vs. ancients mismatch). Bumps plugin version to 1.2.0. * feat(leftclickcast): enable-toggle hotkey + unified chat feedback Adds an `Enable/Disable Hotkey` config item at the top of the Hotkeys section. Pressing the hotkey flips `config.enabled()` and posts an `ExternalPluginsChanged` event so the open MicrobotConfigPanel rebuilds and the inner Enabled checkbox visually flips in sync — the panel otherwise doesn't subscribe to ConfigChanged for individual checkbox refresh. Renames `activeSlotChatMessage` → `chatFeedback` and uses it as a single gate for all plugin chat output. Both checkbox clicks and the toggle hotkey route through a shared `@Subscribe onConfigChanged` handler, so they emit the same chat message via one code path. Materializes `@ConfigItem` defaults to storage on `startUp` via `configManager.setDefaultConfiguration(config, false)`. Without this, MicrobotConfigPanel's checkbox lookup returns null for newly added keys (`parseBoolean(null) → false`) while the proxy returns the @configitem default, leaving the UI and runtime out of sync. Bumps plugin version to 1.3.0. --------- Co-authored-by: chsami <sami.chkhachkhi@gmail.com>
#390) * Reduce code smell, implement sawmill vouchers and Lazy Mode * Change profit calculation to be more accurate, extended Logs enum to prevent weird bank withdrawal shenanigans (tried withdrawing yew logs) * undo main runner change * re-add microbot.java. whoops. * Karam fix (#351) * fix: karambwan fairy ring return Made-with: Cursor * plugin now clicks on fairy ring to get back to karams * commit * fix(AutoMiningPlugin): fix return-to-location after break and log spam - Fix initialPlayerLocation being overwritten when player is at bank, which broke return-to-location functionality after breaks - Add distance check in handleMining() to walk back if too far from spot - Add null guard for initialPlayerLocation to prevent NPE - Reduce log spam from LocationOption by changing missing item logs from warn to debug level - Version bump to 1.0.12 Fixes: users reporting plugin not returning to mining location after breaks --------- Co-authored-by: chsami <sami.chkhachkhi@gmail.com> Co-authored-by: Jonathan Thomas <95548936+JThomasDevs@users.noreply.github.com> Co-authored-by: stonksCode <99895926+stonksCode@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.