The config service accepts in strings instead of json strings, however
this causes the normal control flow to throw a json parsing exception.
Since this happens so frequently it is using a measurable amount of CPU
time, so avoid it in the common case by testing if the string is json
first
Apply the color changes at chat build time directly to the message being
set on the component, instead of prepending the color change onto the
message itself.
This is a bit more robust since it doesn't break things which depend on
the chat message not starting with a color, which they would not
otherwise, such as the chat filter.
The flashing is caused by the vanilla overlays being hidden by the
detached overlay after being drawn, and so the remaining frames before
the next tick would have them hidden. Just always hide the overlay in
BeforeRender so that they are never drawn when the plugin is on.
Also add a quick check if the barrows region is loaded before trying to
draw the barrows brothers minimap overlay.
This allows the additional OFF mode which has the client manage its own
frame rate target without the use of vsync. On lower end systems which
have a hard time delivering a frame in the vsync interval this can give
a noticible performance improvement since it doesn't stall the cpu
waiting for the next vblank when a frame is skipped
Prevents spec counter resetting when attacking a skeleton hellhound spawned by Vet'ion. The hellhounds are spawned at 50% HP, and are required to kill to continue the fight, so the player will continue fighting Vet'ion after they are killed.
It's possible that a player may want to use a spec against the hellhounds, but I'm not aware of any reason for it.
This lets plain latin-character filters to match messages with accents
and diacritics which are not easily typed on all keyboard layouts.
Co-authored-by: Jordan Atwood <jordan.atwood423@gmail.com>