91369c41f037b15b1ba50d9e838dd2654b40a799
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
runelite

RuneLite is a free, open source OldSchool RuneScape client.
If you have any questions, please join our IRC channel on irc.rizon.net #runelite or alternatively our Discord server.
Project Layout
- cache - Libraries used for reading/writing cache files, as well as the data in it
- http-api - API for api.runelite.net
- http-service - Service for api.runelite.net
- model-viewer - RS Model, NPC/Object, and terrain viewer
- runelite-api - RuneLite API, interfaces for accessing the client
- runelite-mixins - Mixins which are injected into the injected client's classes
- runescape-api - Mappings correspond to these interfaces, runelite-api is a subset of this
- runelite-client - Game client with plugins
Usage
Open the project in your IDE as a Maven project, build the root module and then run the RuneLite class in runelite-client.
For more information visit the RuneLite Wiki.
License
RuneLite is licensed under the BSD 2-clause license. See the license header in the respective file to be sure.
Contribute and Develop
We've set up a separate document for our contribution guidelines.
Description
Languages
Java
98.9%
GLSL
0.7%
C
0.3%
