e73ccc30691be9ffe9a85e7a89900194698447ed
After using 8ad5977ad5 for a while, I
noticed that the plugin would lose calibration seemingly at random.
Given I was sitting at Redwoods, this didn't make sense. I want to give
some context as to what was happening and why, baked permanently into
the commit history:
The plugin requires that a few things exist when it saves data, or else
it assumes that something went wrong and it resets the config. One of
these things is that the infobox object exists.
Usually, this is fine, as one is created on login with the stored
duration, as long as said duration is not negative.
However, if the user stood in the same area for 10 minutes and then
logged out somehow (either manually or through AFK), upon logging back
in the config would not create a new infobox as the stored duration is
negative.
Either toggling the plugin or restarting the client at this point would
clear the reference to the old Infobox, and a new one would not be
created on login due to the aforementioned negative duration.
If the plugin was toggled, the calibration is instantly lost, and the
user now sees the tutorial overlay.
If the client was restarted, it would appear as if the plugin is working
fine, and it would fix itself if the player moved far enough. If they
just logged out, however, it would clear its config.
Either way, in most situations, the user is now forced to recalibrate
the plugin when they've done nothing wrong, only commited the heinous
crime of XP wasting.
Most of this was due to how the plugin tracked the aggro time, which was
through its infobox. This really shouldn't be how it does it, and so now
it keeps track of the time separately, and doesn't rely on the creation
of the infobox to block the saving of data.
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
- runelite-api - RuneLite API, interfaces for accessing the client
- 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%
