Commit Graph
100 Commits
Author SHA1 Message Date
Jordan Atwood bbb8cff0d5 game timers: Don't remove antipoison effects on death 2019-05-11 23:58:35 -07:00
Jordan Atwood d1c692e72e western diary: Fix elf pickpocket quest requirement
The requirement for pickpocketing an elf is to have started Mourning's
End Part I for access to Lletya, not to have completed Mourning's End
Part II.

Fixes runelite/runelite#8806
2019-05-11 14:46:45 -07:00
Jordan Atwood 48d428edf5 Remove PVP references to HIGH_RISK world type
As described in 5bebd34bb, HIGH_RISK is not a PVP world type.

Note: this will not affect the world hopper plugin, as it both
explicitly references the high risk world type, and references the
http-api WorldType implementation, not the runelite-api WorldType which
is being modified in this commit.

Fixes runelite/runelite#8605
Fixes runelite/runelite#8624
2019-04-24 20:10:30 -04:00
Jordan Atwood 3be1c41cb9 WorldType: Fix HIGH_RISK world type name
This world type is not specifically a PVP world type; at the time of
this commit, world 365 is a non-PVP high-risk world, where the world is
the same as a regular members' world, except that the Protect Item
prayer is disabled.
2019-04-24 20:10:30 -04:00
Jordan Atwood 011791d823 Remove PVP references to HIGH_RISK world type
As described in 5bebd34bb, HIGH_RISK is not a PVP world type.

Note: this will not affect the world hopper plugin, as it both
explicitly references the high risk world type, and references the
http-api WorldType implementation, not the runelite-api WorldType which
is being modified in this commit.

Fixes runelite/runelite#8605
Fixes runelite/runelite#8624
2019-04-23 13:08:46 -07:00
Jordan Atwood 5bebd34bbf WorldType: Fix HIGH_RISK world type name
This world type is not specifically a PVP world type; at the time of
this commit, world 365 is a non-PVP high-risk world, where the world is
the same as a regular members' world, except that the Protect Item
prayer is disabled.
2019-04-23 13:03:41 -07:00
Jordan Atwood f7040d134b clue plugin: Add new coordinate clue descriptions
Ref: runelite/runelite#8504
2019-04-16 17:17:48 -07:00
Jordan Atwood ee402d5779 clue plugin: Add new cryptic clues
Ref: runelite/runelite#8504
2019-04-15 22:29:37 -07:00
Jordan Atwood 56e2e3ceab clue plugin: Add new cipher clues
Ref: runelite/runelite#8504
2019-04-15 20:05:35 -07:00
Jordan Atwood e78fe71892 boosts plugin: Fix overlay below-threshold color
This patch updates the boosts overlay to match the threshold color
comparison used in the plugin (for notifications) and in the indicator
infobox.
2019-03-15 17:08:42 -07:00
Jordan Atwood 2a57562022 combat level plugin: Add attack level range option
This commit adds a PVP-world-like combat level range text to the
wilderness level in non-PVP worlds, displaying the range of combats you
can attack at any given wilderness level.

Closes runelite/runelite#3103
Closes runelite/runelite#3318
2019-03-12 10:19:20 -07:00
Jordan Atwood 7a3b5dd3a9 Add pvp widget builder script 2019-03-12 10:19:20 -07:00
Jordan Atwood 54912ca31c widgetinfo: Fix wilderness level definition 2019-03-12 10:19:19 -07:00
Jordan Atwood 11b578b7c2 ground markers: Allow different colored markers
This adds a color indicator per marker, saved to config, allowing
multiple markers to be different colors. In addition, a configuration
option is added to switch between per-tile color display or current
configured color display. (that is, new or existing behavior)

This change will set a color in config for old markers with null colors
when those markers are loaded.

Fixes runelite/runelite#3395
2019-03-09 21:42:49 -05:00
Jordan Atwood 191feb94f6 worldpoint: Add getRegionX() and getRegionY() 2019-03-09 20:10:35 -05:00
Jordan Atwood a18827f929 worldpoint: Add static fromRegion method 2019-03-09 20:10:34 -05:00
Jordan Atwood 15fbbdd786 ground markers: Fix startup and shutdown bug
When logging in to the game with the plugin disabled, enabling it will
not cause points to be filled, as the game state trigger will not be
reached. This commit properly loads points on plugin startup and clears
them on shutdown.
2019-03-09 20:10:33 -05:00
Jordan Atwood 5420f874db ground markers plugin: Clean up legacy code
This includes various code quality improvements such as stronger access
control, enforcing newlines at EOF, naming magic numbers and strings,
and utilizing higher efficiency methods and class constructors.
2019-03-09 20:10:26 -05:00
Jordan Atwood 7e02694652 ground markers: Fix marking non-marked tiles
This fixes the bug introduced in runelite/runelite#5890 where attempting
to mark a non-marked tile while having the "Remember color per tile"
config disabled would prevent new tiles from being marked. Instead, it
properly ensures that unmarking tiles with that config disabled will not
re-mark it with an updated color, causing a second unmark to be needed.
2019-03-02 09:27:54 -08:00
Jordan Atwood ad65a9aad9 ground markers: Allow different colored markers
This adds a color indicator per marker, saved to config, allowing
multiple markers to be different colors. In addition, a configuration
option is added to switch between per-tile color display or current
configured color display. (that is, new or existing behavior)

This change will set a color in config for old markers with null colors
when those markers are loaded.

Fixes runelite/runelite#3395
2019-03-02 12:29:28 +01:00
Jordan Atwood 36fdb620fc ground markers: Fix startup and shutdown bug
When logging in to the game with the plugin disabled, enabling it will
not cause points to be filled, as the game state trigger will not be
reached. This commit properly loads points on plugin startup and clears
them on shutdown.
2019-03-02 12:23:15 +01:00
Jordan Atwood 285926924b ground markers plugin: Clean up legacy code
This includes various code quality improvements such as stronger access
control, enforcing newlines at EOF, naming magic numbers and strings,
and utilizing higher efficiency methods and class constructors.
2019-03-02 12:23:15 +01:00
Jordan Atwood 39bbf2f259 worldpoint: Add getRegionX() and getRegionY() 2019-03-02 12:23:15 +01:00
Jordan Atwood 1675a7e0a1 worldpoint: Add static fromRegion method 2019-03-02 12:23:15 +01:00
Jordan Atwood 2922a8b5f8 worldpoint: Fix plane value in toLocalInstance
Fixes runelite/runelite#7985
Fixes runelite/runelite#8045
2019-02-28 15:27:25 -08:00
Jordan Atwood b000818393 item stats: Represent boost data as ints
Particularly since exposing StatBoosts and StatChanges through the item
stats service, it has become evident that storing stat change data as a
human-readable string is not especially useful for consumers of the
service as they must handle string processing, particularly for special
cases such as range stat boosts or spicy stews. This patch changes
StatChanges to expose their relative, theoretical, and absolute change
values as ints instead for ease of consumption, and adds methods to get
human-readable versions of these relative and theoretical values for
display purposes.

Fixes runelite/runelite#6594
2019-02-07 23:14:33 -08:00
Jordan Atwood d1c11b675b Remove deprecated TileObjectQuery class 2019-02-01 21:44:13 -05:00
Jordan Atwood 9e67dcd39e Remove deprecated ActorQuery class 2019-02-01 21:44:13 -05:00
Jordan Atwood 3d3ec76af8 Remove deprecated InventoryItemQuery class 2019-02-01 21:43:48 -05:00
Jordan Atwood d4f51c4600 Remove deprecated GroundObjectQuery class 2019-02-01 21:43:47 -05:00
Jordan Atwood 732be4e90f Remove deprecated GameObjectQuery class 2019-02-01 21:43:47 -05:00
Jordan Atwood cec74c6652 Remove deprecated DecorativeObjectQuery class 2019-02-01 21:43:46 -05:00
Jordan Atwood b408a22d57 Remove deprecated PlayerQuery class 2019-02-01 21:43:46 -05:00
Jordan Atwood 35b7de7dd8 Remove deprecated WallObjectQuery class 2019-02-01 21:43:45 -05:00
Jordan Atwood 764cac7a09 Remove deprecated WorldPoint.toPoint() method 2019-02-01 21:43:44 -05:00
Jordan Atwood a5e72ea610 client: Use isEmpty() for all Collection emptiness checks 2019-02-01 16:50:54 -08:00
Jordan Atwood b559fd859b chat commands: Add test case for PB without trailing period 2019-01-30 09:13:26 +01:00
Jordan Atwood eb7ebddec3 player indicators: Add name position configuration
This allows players to select from a number of positions where they
would like highlighted player's names to be drawn relative to the
player's model.

Closes runelite/runelite#878
2019-01-29 16:29:19 -08:00
Jordan Atwood 201788847a actor: Mark getCanvasTextLocation as Nullable 2019-01-29 16:29:19 -08:00
Jordan Atwood dd84156dfc perspective: Allow empty text for getCanvasTextLocation
This is particularly useful for aligning text to a certain point such
that it would not be centered on that point, such as left or right
alignment.
2019-01-29 16:28:40 -08: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