Splits the RUNELITE menu action into two actions:
RUNELITE - general menu items.
RUNELITE_PLAYER - menu items which target a player and have its identifier set to a player index.
Then the player indicators plugin is changed to only decorate RUNELITE_PLAYER menu items.
Fixes the !pb command to account for the new OSRS update. This does not include team size based pb's, just your best overall pb
Also adds the ability to look at adventure log to check your cox pb's.
If you left a raid while a raid was currently being
scouted/held in the same world then there was a chance the
plugin would not reset and the scout overlay and timer
would break. This was due to the plugin thinking that the
player was in a raid party when he left and did not reset.
This was fixed by reseting whenever the raid party varp
changed while the player is outside of the raid.
steps to reproduce:
start a raid on account 1
scout another raid in the same world on account 2
leave the raid on account 1 and it will not reset correctly
The default pf4j comparator casts longs to ints which breaks
the sort. Since we don't actually rely on this sorting, simply
set the comparator to `null`.
See https://github.com/open-osrs/runelite/pull/2621 for more info
Enables the pf4j [development mode](https://pf4j.org/doc/development-mode.html)
to support loading external plugins from sources, which enables java's
hotswap functionality.
To use this feature set the `plugin.development.path` property or
`PLUGIN_DEVELOPMENT_PATH` environment variable to the directories
containing your plugins, e.g. `../plugins;../my-custom-plugins`
Once set the `ExternalPluginManager` will ignore the configured
repositories and externalmanager directory, and instead load all
the built plugins from the specified directories.
Utilizing this feature does require some additional configuration
of the build of the plugins `build.gradle.kts`. Within the `subprojects`
section add:
```
tasks.register<Copy>("copyDeps") {
into("./build/deps/")
from(configurations["runtimeClasspath"])
}
```
See https://github.com/open-osrs/plugins/pull/260 for the `openosrs/plugins` change
This enables the following workflow:
0. Optional tip: Set the `external.system.substitute.library.dependencies` registry value to `true` to force classpath resolution within the project
1. Open the `runelite-client` project in IntelliJ
2. Add the `plugins` repository as a module (Gradle -> Plus symbol ->
`plugins/build.gradle.kts`)
3. Gradle build the client with: `build publishToMavenLocal :runelite-client:publishToMavenLocal :runelite-api:publishToMavenLocal :http-api:publishToMavenLocal`
4. Gradle build the plugins with: `build copyDeps`
5. Add the `PLUGIN_DEVELOPMENT_PATH` environment variable to the run
configuration
Once the above is done the edit -> reload -> edit cycle can begin:
1. Start the client in debug mode using the run goal
2. Edit the external plugin
3. Perform Build > Build Module
4. Observe hotswapping in action!
5. If hotswapping failed, or your change requires a plugin restart,
click the hotswap button in the plugin list to instantly restart it
Because itemManager#getItemPrice() canonicalizes the passed item ID, it
is no longer necessary to get noted items' base IDs or otherwise
canonicalize item IDs before interacting with the method.
Historically price lookup was done by sending a web request on price
lookups, which required calls to be done on an executor. As of
a1ae397e11, client prices are loaded periodically and cached, thus no
longer imposing any thread requirement on price lookup.