- Remove last item ID checks completely and simply update the widget
text with OSB actively traded price whenever the widget do not contains
any
- Properly reset grandExchangeText and grandExchangeItem widgets on
plugin shutdown
Fixes#5098Closes#5158
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This extends the functionality of the clue scroll plugin to include
solutions for three step cryptic master clues. The solutions for these
clues are already present in the existing CrypticClue class, but before
this there was not a way for the clues to be recognized. The
ThreeStepCrypticClue class matches the clue scroll text for all three
cryptic clues and keeps the matched clue objects as a list, along with
their completion status. If a clue has a strikethrough tag when reading
the clue, then the plugin will recognize it as complete. The plugin will
also detect when a new clue part has been obtained and update the
completed status of that clue.
This plugin displays the virtual level in the denominator of given
skills, and the virtual total level on the skills tab.
Fixesrunelite/runelite#375
Co-authored-by: Joshua Filby <joshua@filby.me>
The mobile bank interface uses the same index as we do for menu option, and fully saturates a widget's 10 available menu options (Excluding type 2 widget options, which are special). This means we cannot use the cs2 opcode to add a menu option without overwriting an existing one, so we have to add it at menu build time.
- Return null instead of throwing IllegalArgumentException from hiscore
(this was how it worked before)
- Add null checks and for hiscoreClient
Fixes#5513
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
- Add separate config option to display fishing spot tiles
- Add separate config option to display fishing spot names
- Make config option to display fishing spot icons be independant of
fishing spot names
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
- Make fairy ring tooltips and icons work without each other
- Make agility tooltips and icons work without each other
- Make plugin work correctly during restarts
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
The plugin is initialized with `lastTime` as null, meaning that if
`onGameTick` is called before `onInteractingChanged`, you can encounter
a case where after starting the client or plugin, `lastTime` has not yet
been set while `client.getLocalPlayer().getInteracting` is null (because
`onGameTick` gets sequenced before `onInteractingChanged` per tick),
causing an NPE when trying to compare a null Duration.
Fixesrunelite/runelite#5451