Apparently, the setOpaque method on JPanels was causing some performance
issues on the client, the original reason I had these was so that the
base panel would have a color defined, and every container or wrapper
panel on top would just be transparent.
To fix this I have set a default JPanel background color and replaced
calls to setOpaque with calls to
setBackground with the appropriate colors.
Cause:
Time til next level relied on xp per hour being divided by 3600
(seconds in an hour). For XP rates under 3600 per hour, this would
result in a divide by zero.
Solution:
Use floats and rely on an xp per second implementation that works on
seconds instead of hours.
It appears to work as expected.

* Add javadocs to methods
* Rename 2 methods for clarity, and add Nullable tag
* Rename local vars for consistency / correctness
* Simplify setHoveredFriend to allow clearer variable names
* Finalize local vars and add KEY_PREFIX constant
* Tweak 2 log messages for clarity and crash-proofing
* Inline the comments added to generic callbacks
* Skip the tag removal on MenuEntryAdded targets
Prepared it for release, still to be redesigned.
Changes:
- Changed the background color on some panels to match the new ui
- Re-ordered the plugin to a lower position on the side bar
- Added new parameter to navigation buttons: priority.
- Ordered the navigation buttons by their priority and name in PluginToolbar.
- Added a maximum size to the navigation buttons to keep all their sizes
the same.
- Added new icons for the following plugins:
- Account (login/logout)
- Grand Exchange
- Feed
- Info
- Kourend Library
- Notes
- Screenshot
Farming Plugin:
- Redid the layout, coloring and positioning on the FarmingTrackerPanel
to include my new MaterialTabs.
- Added section divider labels in the special and tree tabs.
- Hid the patch type indicator for some patches (explained in docs).
- Added patch names for all instances of FarmingPatch (previously only
a portion of them were written for a hack that is no longer necessary).
- Created getName() method in PatchImplementation that returns the patch
type's name in a formatted style (SPIRIT_TREE -> Spirit Tree).
- Created a new tab for bushes.
MaterialTabs:
- Added onSelectEvent runnable to MaterialTab.
- Added horizontal gap to the tabs.
- Added getTab() method that returns a tab on a given index.
CustomScrollBarUI:
- Added functionality to allow the ui colors to be changed from an
external call. (setters)
ColorScheme:
- Created color constants in the ColorScheme file for the progresss bar
backgrounds and used them in the CropState enum.
Restyled the whole exp trackers plugin panel to follow my proposed
design style on issue #1342
- Added two new entries to the runelite properties file (github and
patreon link). And addes respective getter methods in the
RuneLiteProperties.java file.
Restyled the whole exp trackers plugin panel to follow my proposed
design on issue #1342
- Restyled and recolored the exp tracker
- Removed the contracted state, trackers are now always expanded as they
are now thinner than before
- Progress bars are now color matched to the skill using a new enum
SkillColor
- Added new progresss bar custom component
- Added error panel for "no exp gained" that disappears once the player
earns experience
- Restyled the overall exp panel
- Hid the overall exp panel until the player earns experience
- Added "Reset" right click menu to individual skill trackers
- Added "Reset All" right click menu to the overall skill tracker
- Updated the search bar to the new icon text field component.
- Added new on/off icons based on the material design style.
- Recoloured the background.
- Recoloured the plugin name labels.
- Replaced the config/toggle buttons for icon labels.
- Hid config button if no config was found, instead of disabling it.
- Left aligned the header title.
- Added new ComboBoxListRenderer to prevent substance's ugly coloring.
- Changed the panel title to "Configuration"
- Used deathbeam's new layout manager DynamicGridLayout
- Increased the padding on the overall panel and the title.
- Recolored the background and text editor.
- Wrapped the text editor in a panel to prevent substance's hover
effects.
- Added 10px padding to the text editor
- Added a header section, containing a title and a refresh icon button.
- Increased the overall border from 5 to 10 pixels.
- Changed the background color to a darker gray.
- Spaced out the item panels vertically and slightly horizontally.
- Added a new header with the plugin's name, as it can be hard to know
what this plugin does/is.
- Restyled the reset button, it previously was a "Reset" text button, I
switched it to an icon with a darker version that activates
when clicked.
- Added the icon images to the resource folder.
- Added new method to SwingUtil that returns a darker version of an
image
- Used the image darkening method to give the refresh button a click
feedback effect