The command could not work before because the capitalize in
longBossName would produce a capital Of causing the hiscore
skill name to not match.
This normalizes from the hiscore name by removing : to compare
it to our internal boss names.
FileOutputStream (by design) passes FILE_ATTRIBUTE_NORMAL and
CREATE_ALWAYS to CreateFile, which causes it to fail with access denied
if it is opening a FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM file
See JDK-8047342
debug mode aggressively checks and throws whenever a gl error occurs.
The glBlitFramebuffer call is bizzare because with the alpha channel
enabled on the renderbuffer it appears to work correctly despite
causing an INVALID_OPERATION error. We have no use for the alpha channel
since the dst alpha value is always 1, so it can just be disabled on macos.
This field was originally used to show a catch rate overlay, but all its
uses were removed in 76fbab60fc when the
overlay was removed due to unreliable behavior.
Orginally the only way to form a party was via Discord invites. This has
changed semi-recently to allow sharing party ids instead.
The Discord invite system is finnicky since it doesn't work unless
Discord is detected, doesn't work right with multiple clients, or
multiple Discords. And, discord_rpc is deprecated without a suitable
replacement.
This changes the party system to instead always require sharing party
ids instead.
It can't be assumed the array passed to setModIcons is still correct in
the async image callbacks. Instead, fetch the current modicons array in
the callback and use that.
The inventory can be moved pre-interface tick by the tli subchange
listener, as well as post-our client tick event from script events
running.
This makes it difficult to correctly and generically move the interface,
since it would have to be moved pre-interface tick and also pre-frame.
Currently the code moves the interface pre-frame, which looks okay, but
since it is ticking the interface when it is a different position,
clicks on it do not work correctly.
We do not have events for pre-interface tick, so use forced position to
reliably set the position