Commit Graph
100 Commits
Author SHA1 Message Date
Jordan Atwood b559fd859b chat commands: Add test case for PB without trailing period 2019-01-30 09:13:26 +01:00
Jordan Atwood 05473d2050 dev tools: Fix overlay layer
After the introduction of the new ABOVE_MAP layer, the dev tools overlay
was no longer able to draw above the map, which is needed for the widget
inspector.
2019-01-02 19:33:33 -08:00
Jordan Atwood 1369cfc914 Fix world map surface selector widget ID 2019-01-02 19:29:34 -08:00
Jordan Atwood 4f18a54c23 experiencedrop: Highlight only correct exp drops for prayer
Prior to this commit, hitpoints exp drops (and combined exp drops
containing hitpoints) would be highlighted for any combat prayer. This
commit corrects this behavior so combined drops will only be highlighted
when containing the proper combat style prayer, and split exp drops will
only highlight hitpoints when the correct prayer type was active for the
experience drops which precede it.

Fixes runelite/runelite#1697
2019-01-02 19:03:42 -08:00
Jordan Atwood f8c445a085 reportbutton: Add date time format
This matches the screenshot plugin's date formatter.

Closes runelite/runelite#1228
2019-01-02 17:16:41 -08:00
Jordan Atwood e8ee7478a0 reportbutton: Make time formatting methods static where possible 2019-01-02 17:16:16 -08:00
Jordan Atwood 414981372e itemprices: Add "tooltips" plugin tag 2019-01-02 16:38:10 -08:00
Jordan Atwood 5edeeb6633 combatlevel: Fix prayer level needed to next combat
This adds a test which exposes an edge case where the needed prayer
levels to next combat level had been calculated to be 3 instead of 1,
and fixes that calculation.

Fixes runelite/runelite#7103
2018-12-31 20:01:05 -08:00
Jordan Atwood 541ad1e26d combatlevel: Clean up plugin code
This commit moves constants from the test to the overlay, and replaces
instances of magic numbers with them. It additionally fixes the odd
check in `correctPrayer()` and fixes some minor whitespace issues.
2018-12-31 10:40:26 -08:00
Jordan Atwood 665d7130c6 experiencedrop: Maintain active prayer per tick
This commit fixes the occasional issue of xp drops not being highlighted
while flicking prayer from the prayer menu; that is, before this commit
it was possible to select or deselect a prayer between xp drop widgets
being spawned, causing different highlighting for them. This commit
saves the active prayer at the beginning of each tick and uses that
tick's prayer for all widgets unhidden during that tick.

Fixes runelite/runelite#1280
Closes runelite/runelite#6679
2018-12-31 08:53:24 -08:00
Jordan Atwood 7b7a0018b0 timers plugin: Update SDMM teleblock handling
[Per the updates for the upcoming
seasonal](https://www.runescape.com/oldschool/deadman/season), similar
to previous tournaments:

> Teleblock will now last for 150 seconds, or for 75 seconds with Protect from Magic active.
2018-12-08 18:03:43 -08:00
Jordan Atwood 374df55e41 Handle Deadman Tournament world type in plugins 2018-12-08 18:03:43 -08:00
Jordan Atwood 716144ff87 Add DMM Tournament world type 2018-12-08 18:03:43 -08:00
Jordan Atwood 14a4eacee3 WorldType: Make PVP_WORLD_TYPES final 2018-12-08 17:49:00 -08:00
Jordan Atwood 072452625a timers: Correctly add freeze timer upon frozen while moving
When becoming affected by an ice spell, such as Ice Barrage, when moving
prior to the effect's start, the previous code had a subtle bug where
the freeze timer would be applied in the chat message subscriber, but
the `client` would update the player's position before the onGameTick
subscriber was executed, meaning any movement on the same tick the
player became frozen would be registered as "movement", thus removing
that timer.

This fix sidesteps that issue by also ensuring that the client's tick
is different than the freeze tick, since that value appears to remain
unmodified between execution of these two methods.

Fixes runelite/runelite#6658
2018-11-26 15:12:07 -08:00
Jordan Atwood 32942fd645 attack styles: Fix style hiding after autocast selection
In side stones view, going through the spell autocast selection process
will cause the combat widget to become unloaded and reloaded, rather
than triggering the previous code path where the widget would change
hidden state. This commit adds a second subscriber to handle this path
as well.

Fixes runelite/runelite#6557
2018-11-20 17:34:28 -08:00
Jordan Atwood f8d1ef1ba1 wasdcamera: Fix chat text color on transparent chatbox
Fixes runelite/runelite#6288
2018-11-04 13:06:37 -05:00
Jordan Atwood 7aa5654488 Add JagexColors constants file, update Color uses
Fixes runelite/runelite#4073
2018-11-04 13:06:12 -05:00
Jordan Atwood 0a5e7d4b4b inventory tags plugin: Use MenuManager
This patch updates the inventory tags plugin to utilize the MenuManager
util to better add menu options to the inventory tab.

Fixes runelite/runelite#6132
2018-11-01 17:02:19 -07:00
Jordan Atwood 0d79490f6d inventory tags plugin: clean up plugin code
This includes various code quality improvements such as stronger access
control and removing redundant code.
2018-11-01 17:02:02 -07:00
Jordan Atwood 058e0351e2 mta telekinetic room: Fix finish point comparison
Fixes runelite/runelite#5948
2018-10-21 11:49:24 -07:00
Jordan Atwood 8594cd4a93 slayer: Add combat bracelet task update handling
Fixes runelite/runelite#4473
2018-10-12 14:35:24 -07:00
Jordan Atwood d0464f71b4 GameEventManager: Simulate Actor spawn events 2018-10-12 10:37:49 -07:00
Jordan Atwood 3fd8252cb7 time tracking: Remove deprecated config migration
Fixes runelite/runelite#5882
2018-10-11 14:33:44 -07:00
Jordan Atwood b5f534f9fe mouse tooltips: Don't add a tooltip if another is present
VarClientInt(2) is set to `1` whenever a tooltip is present, meaning we
should never render a tooltip when it is set that way. Some menu options
(world map dungeon links) have a null widget associated with them, and
do not utilize the TOOLTIP_TIMEOUT VarClientInt, so this check is
necessary to avoid adding a duplicate tooltip.

Fixes runelite/runelite#3278
2018-10-07 14:38:21 -07:00
Jordan Atwood 72f4875b22 Revert "Truncate NPC name instead of subtitle in Loot Tracker (#5740)"
This reverts commit 78e6dee8d0.
2018-10-03 22:48:39 -07:00
Jordan Atwood 2ff7357cd3 agility plugin: Highlight Meiyerditch entrance obstacles
Ref:
https://user-images.githubusercontent.com/2199511/46381920-eb02f100-c697-11e8-8f93-c629053eaa2b.png
https://user-images.githubusercontent.com/2199511/46381921-eb02f100-c697-11e8-827d-15868fdc32ae.png
https://user-images.githubusercontent.com/2199511/46381922-eb02f100-c697-11e8-8539-09590bde517c.png
https://user-images.githubusercontent.com/2199511/46381923-eb9b8780-c697-11e8-8565-268d1da409e9.png
https://user-images.githubusercontent.com/2199511/46381924-eb9b8780-c697-11e8-9ec1-dfb21c5f1409.png

Closes runelite/runelite#5771
2018-10-02 16:06:43 -07:00
Jordan Atwood cd18bed7d9 world map plugin: Update fairy ring icon
This updates the fairy ring icon to more closely resemble existing
travel icons and be less busy-looking than the current "sparkly" icon.

Closes runelite/runelite#2940
2018-10-01 17:58:49 -07:00
Jordan Atwood 4d2a962f54 corp plugin: Fix settings description typo 2018-10-01 13:03:21 -07:00
Jordan Atwood f8e91a1e2f wasd camera plugin: Use ColorUtil functions 2018-10-01 12:58:05 -07:00
Jordan Atwood 7f8404e328 player indicators plugin: Use ColorUtil functions 2018-10-01 12:57:34 -07:00
Jordan Atwood 03c643a18b slayer plugin: Use boss pets as slayer icons 2018-09-24 16:53:13 -07:00
Jordan Atwood 20922aea9a slayer plugin: Add parsing for boss task assignments
Ref: https://user-images.githubusercontent.com/2199511/45984305-f9c22600-c04f-11e8-8cda-a8f4ab40e678.png
2018-09-24 16:05:55 -07:00
Jordan Atwood 5ef3597486 timers plugin: Reset Teleblock on entering safe zone
The effects of the Tele Block spell expire on three possible conditions:

1. When a player leaves the wilderness on a non-PVP/DMM world
2. When a player enters a PVP/DMM world safe zone
3. When a player logs out

Leaving the wilderness can be detected via Varbits changes, entering
safe zones in PVP/DMM worlds can be detected via WidgetHiddenChanged
events, and logging out is already detected via GameStateChanged events.
With that said, addressing the first two cases is not a trvial effort as
there are certain race conditions that must be handled. The
WidgetHiddenChanged event triggers upon login to PVP worlds regardless
of where you log in, and the PVP widgets all initially load in a state
which would be reflective of being in a safe zone, and are later set to
the proper state before the first display frame is rendered. Similarly,
during world hops, GameStateChanged and VarbitChanged events trigger in
a pattern which causes the client to think that a player is always
outside the wilderness upon reaching a `LOGGED_IN` game state; that is,
the following events occur on world hopping:

1. Game state changes to `HOPPING`
2. Varbits are all reset to default values. In the case of the
   wilderness varbit, it is set to 0--the value representing being
   outside the wilderness.
3. Game state changes to `LOGGED_IN`
4. Varbits are set based on player information. Only at this point is
   the IN_WILDERNESS varbit set to its proper value.

To handle these race conditions, the event subscribers for game state
change and widget hidden events only set a flag which is checked once
per game tick to handle PVP safe zone (and wilderness varbit) checks.

Fixes runelite/runelite#2384
2018-09-23 14:45:21 -07:00
Jordan Atwood facf7d69c9 worldtype: Add PVP_WORLD_TYPES and isPvpWorld 2018-09-21 00:00:01 -07:00
Jordan Atwood 2c4c7c566c Add PVP and Deadman widget info 2018-09-20 15:55:32 -07:00
Jordan Atwood daa0d84447 Add IN_WILDERNESS Varbit 2018-09-20 15:55:31 -07:00
Jordan AtwoodandJoshua Filby b81954cd60 Add Virtual Levels plugin
This plugin displays the virtual level in the denominator of given
skills, and the virtual total level on the skills tab.

Fixes runelite/runelite#375

Co-authored-by: Joshua Filby <joshua@filby.me>
2018-09-19 18:42:16 -04:00
Jordan Atwood d74fc18091 clue scroll overlay: Show visible emote widget area
The visible area of emote widgets will now be highlighted, regardless of
whether the widget is partially outside the emote window.

![Highlighted emote widget resizes to show visible area within emote window](https://user-images.githubusercontent.com/2199511/45579707-777c7980-b879-11e8-90bf-1e34fc1cb790.gif)

Fixes runelite/runelite#4163
2018-09-14 16:52:31 -07:00
Jordan Atwood 91369c41f0 opponent info plugin: Fix possible onGameTick NPE
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.

Fixes runelite/runelite#5451
2018-09-14 14:36:10 -07:00
Jordan Atwood ea284f9ca0 Centralize item (de)spawn log messages
Fixes runelite/runelite#5452
2018-09-14 14:33:06 -07:00
Jordan Atwood fba6b0122d world map overlay: Clip around widgets above map
This commit clips the overlay draw area to exclude the area taken by
widgets which draw above the world map, namely the overview map and
surface selector.

Fixes runelite/runelite#3264
Fixes runelite/runelite#3456
Closes runelite/runelite#3468
2018-09-13 16:18:35 -07:00
Jordan Atwood 1263e8a636 world map overlay: Render on ABOVE_WIDGETS layer
This commit makes world map overlay points and tooltips render below the
right-click menu, like native world map points and tooltips do.
2018-09-13 16:17:19 -07:00
Jordan Atwood 3832abfca8 Add world map surface selector and overview map widgets
This commit also reorders them to come in integer order.
2018-09-13 16:15:51 -07:00
Jordan Atwood cacb9e08aa timers plguin: Add teleport cooldown timers
This adds timers for home teleport and minigame teleport cooldowns.

Fixes runelite/runelite#814
Closes runelite/runelite#2153
2018-09-09 13:14:56 -07:00
Jordan Atwood af6a08bd01 Add home teleport widget info 2018-09-09 13:14:56 -07:00
Jordan Atwood 283cb96187 Add minigame teleport button widget info 2018-09-09 13:14:55 -07:00
Jordan Atwood c46b697071 Add home teleport animation and graphic definitions 2018-09-09 13:14:55 -07:00
Jordan Atwood 92d8d95e51 timers plugin: Reset fields on shutdown 2018-09-09 13:14:54 -07:00
Jordan Atwood 8fa437ed62 clue scroll plugin: Check for sets across inventory and equipment
Fixes runelite/runelite#3271
2018-09-06 15:19:06 -07:00
Jordan Atwood 058d043239 Fix SpriteIDs from 2018/08/30 update
Ref: (updated on left, old on right)
https://cdn.discordapp.com/attachments/419891709883973642/486602970901905418/2018-08-30_05-56-54.png
https://cdn.discordapp.com/attachments/419891709883973642/486602973074423819/2018-08-30_05-59-16.png
https://cdn.discordapp.com/attachments/419891709883973642/486602974483709962/2018-08-30_06-00-24.png
https://cdn.discordapp.com/attachments/419891709883973642/486602975905841171/2018-08-30_06-02-17.png
https://cdn.discordapp.com/attachments/419891709883973642/486602978153988096/2018-08-30_06-02-56.png
https://cdn.discordapp.com/attachments/419891709883973642/486602978837528577/2018-08-30_06-03-48.png
https://cdn.discordapp.com/attachments/419891709883973642/486602980494147594/2018-08-30_06-04-39.png
2018-09-06 12:13:37 -07:00
Jordan Atwood 2df2279455 interface styles plugin: Add more error handling
If a file is expected but not found, an IllegalArgumentException will be
thrown as a result of `null` being passed to the `ImageIO.read` call.
This commit adds better logging for this error case.
2018-09-06 12:12:19 -07:00
Jordan Atwood 6b600da0f3 hiscore plugin: Colorize "Lookup" player menu entry
This will cause the "Lookup" player menu entry to be colorized according
to the player indicators plugin options.

Fixes runelite/runelite#3806
2018-09-06 10:02:00 -07:00
Jordan Atwood a51b8b1ac7 screenmarker plugin: Remove extra images
This also makes the hover effect more consistent on the opacity toggle.

Closes runelite/runelite#5026
2018-08-22 09:26:16 -07:00
Jordan Atwood 8eab23147e timers plugin: Add fall/winter DMM teleblock timers
Beginning in Autumn 2018, teleblock timers will be half that of the
normal game mode: 150 seconds for a full teleblock, and 75 seconds if
the target had Protect from Magic active.

Ref: https://services.runescape.com/m=news/deadman-autumn-finals-and-winter-season?oldschool=1
2018-08-16 15:17:56 -07:00
Jordan Atwood 53ef162f1b timers plugin: Fix SDMM normal spellbook freezes
In Seasonal Deadman mode, protect from magic does not half the duration
of normal spellbook freeze spells (bind, snare, entangle) unlike
normal worlds and the permanent Deadman mode world.

Source: https://www.runescape.com/oldschool/deadman/season
2018-08-13 14:16:21 -07:00
Jordan Atwood 6bdde08c75 time tracking plugin: Fix timers header color
Fixes runelite/runelite#4821
2018-08-11 00:58:18 -07:00
Jordan Atwood 547f037330 Remove unused @Slf4j annotations and imports 2018-08-05 10:27:01 -07:00
Jordan Atwood 5c219c7ea5 ImageUtil: Add getResourceStreamFromClass method
This replaces invocations of `Class.getResourceAsStream(path)` in order
to relieve plugin/client code from managing synchronization and handling
exceptions.
2018-08-04 01:11:51 -07:00
Jordan Atwood 37092ce423 xp tracker plugin: Use shared image for icon 2018-08-04 01:11:00 -07:00
Jordan Atwood c8ba452c84 screenshot plugin: Use Sprite ID for overlay image 2018-08-04 01:10:59 -07:00
Jordan Atwood 24bc03bb1d raids plugin: Use Sprite ID for raids timer 2018-08-04 01:10:58 -07:00
Jordan Atwood 470966d0d6 puzzle solver plugin: Use Sprite ID for overlay image 2018-08-04 01:10:56 -07:00
Jordan Atwood 39ac378f4d kingdom plugin: Use Item ID for overlay image 2018-08-04 01:10:55 -07:00
Jordan Atwood ef4ce9708e hiscores plugin: Remove duplicate skill icon images 2018-08-04 01:10:54 -07:00
Jordan Atwood 2ccb2c7f5b fight caves plugin: Use Sprite IDs for overlay images 2018-08-04 01:10:52 -07:00
Jordan Atwood 99e2d766d6 death indicator plugin: Use Item IDs for overlays 2018-08-04 01:10:51 -07:00
Jordan Atwood ecea2e28ca clue scroll plugin: Use Item IDs for overlays 2018-08-04 01:10:49 -07:00
Jordan Atwood bcaa92905f agility plugin: Use Item ID for arena timer 2018-08-04 01:10:48 -07:00
Jordan Atwood ff31ffef01 plugins: Use shared clue arrow and reset images
These images are used throughout multiple plugins, thus are moved to a
new utility directory.
2018-08-04 01:10:46 -07:00
Jordan Atwood d6e465877e clan manager: Use Sprite IDs for rank badges
This commit adds `ImageUtil::resizeCanvas`, `ImageUtil::outlineImage`,
and `ImageUtil::fillImage`, and applies these functions to the clan
manager to replace the clan rank images with calls to `SpriteManager`.
2018-08-04 01:10:45 -07:00
Jordan Atwood 8fb36d3ea4 resources: Remove derivative images
This commit adds `ImageUtil::bufferedImageFromImage`,
`ImageUtil::alphaOffset`, `ImageUtil::grayscaleImage`, and
`ImageUtil::flipImage` functions and applies them to client and plugin
code to remove unneeded derivative images from the resources directory.
2018-08-04 01:10:44 -07:00
Jordan Atwood 06cd5cd7d0 Add image utility class 2018-08-04 01:10:42 -07:00
Jordan Atwood f0799ffe79 SwingUtil: Fix grayscaleOffset to not modify alpha
With previous code, grayscaleOffset was modifying all image components
(including alpha), instead of only the color components. This commit
fixes that by using a `RescaleOp` instead, which allows for distinct
modifiers per component.
2018-08-04 01:10:40 -07:00
Jordan Atwood 3963785de9 resources: Remove unused images
This removes the now-unused images left over from the removed special
attack orb plugin and plugin rework for new title toolbar.
2018-08-04 01:10:23 -07:00
Jordan Atwood 3159a02edf chat commands plugin: Use consistent message check
All chat messages are either checked for equality to command strings
which are not followed by spaces or are checked to start with command
strings followed by a space, and use the constants' length (plus one,
for the space) to get the command argument.
2018-08-02 11:59:27 -07:00
Jordan Atwood bb2c800875 achievement diary plugin: Fix coal mining req
Fixes runelite/runelite#4646
2018-08-02 11:38:14 -07:00
Jordan Atwood d617ff5985 agility: Add Ungael obstacles
Ref:
https://user-images.githubusercontent.com/2199511/43506201-e027cfaa-9558-11e8-89f7-f0efbabcdc8f.png
https://user-images.githubusercontent.com/2199511/43506202-e043a72a-9558-11e8-984a-5fd9214e889d.png
https://user-images.githubusercontent.com/2199511/43506203-e05d3dc0-9558-11e8-852d-1cf06b99f29d.png
https://user-images.githubusercontent.com/2199511/43506204-e0751c24-9558-11e8-9e33-19ec490b4edb.png
https://user-images.githubusercontent.com/2199511/43506638-2e190156-955a-11e8-90fe-80fa28603b6e.png
https://user-images.githubusercontent.com/2199511/43506639-2e30a040-955a-11e8-8fee-54882adb2f80.png
https://user-images.githubusercontent.com/2199511/43506640-2e4a1a02-955a-11e8-8e72-65742dd776ca.png

Fixes runelite/runelite#2629
2018-08-01 00:12:58 -07:00
Jordan Atwood 39e3f6fb7e clues: Fix Lumbridge swamp cave emote clue location
Ref: https://user-images.githubusercontent.com/2199511/43506141-b57a40e4-9558-11e8-9e4d-a6a5ddbdcd4a.png
2018-08-01 00:01:31 -07:00
Jordan Atwood 85bbbf9d96 achievement diary plugin: Fix waka canoe requirement 2018-07-30 12:25:14 -07:00
Jordan Atwood af4bc0242f achievement diary plugin: Fix Belladonna farming req 2018-07-30 12:24:52 -07:00
Jordan Atwood b90261f524 achievement diary plugin: Fix Abyssal demon req
Fixes runelite/runelite#4522
2018-07-26 20:09:48 -07:00
Jordan Atwood 1d0702e19d slayer plugin: Use ColorUtil functions 2018-07-26 19:51:32 -07:00
Jordan Atwood 3f67ed04c8 rune pouch plugin: Use ColorUtil functions 2018-07-26 19:51:32 -07:00
Jordan Atwood 0ef1adeaaa puzzle solver plugin: Use ColorUtil functions 2018-07-26 19:51:31 -07:00
Jordan Atwood a9d29a70f4 player indicators plugin: Use ColorUtil functions 2018-07-26 19:51:30 -07:00
Jordan Atwood 83d3237780 menu entry swapper plugin: Use ColorUtil functions 2018-07-26 19:51:28 -07:00
Jordan Atwood 4d0480ef24 item stats plugin: Use ColorUtil functions 2018-07-26 19:51:27 -07:00
Jordan Atwood 5c2251643c item prices plugin: Use ColorUtil functions 2018-07-26 19:51:26 -07:00
Jordan Atwood 8280654c88 inventory tags plugin: Use ColorUtil functions 2018-07-26 19:51:25 -07:00
Jordan Atwood f43a2e0162 ground items plugin: Use ColorUtil functions 2018-07-26 19:51:23 -07:00
Jordan Atwood be91d3ce26 friend notes plugin: Use ColorUtil functions 2018-07-26 19:51:22 -07:00
Jordan Atwood c898fda923 boosts plugin: Use ColorUtil functions 2018-07-26 19:51:21 -07:00
Jordan Atwood 339ece742c achievement diary plugin: Use ColorUtil functions 2018-07-26 19:51:20 -07:00
Jordan Atwood c64727e6b4 widget menu option: Use ColorUtil functions 2018-07-26 19:34:21 -07:00
Jordan Atwood 477027a032 chat message manager: Use ColorUtil functions 2018-07-26 19:33:29 -07:00
Jordan Atwood 8472ae61e5 notifier: Use ColorUtil functions 2018-07-26 19:29:25 -07:00
Jordan Atwood 29777c0b1f Add color utility class
In addition to creating `colorTag`, `prependColorTag`, and
`wrapWithColorTag` functions, this commit moves
`SwingUtil::toHexColor` and `SwingUtil::colorLerp` to this new class.
2018-07-26 19:21:29 -07:00
Jordan Atwood 39e56151b7 timers plugin: Use constants for checked strings 2018-07-26 18:27:12 -07:00
Jordan Atwood aede77f7e5 item charge plugin: Use constant for checked string 2018-07-26 18:27:02 -07:00