This allows the other plugins which depend on the npc overaly to work
when npc highlight plugin is off, while still letting them use the
consistent highlight style of the central overlay.
The ChatPlayers do not implement equals or hashCode, making them
unsuitable as a hashmap key. Instead just use a linked list and compare
the members using the comparable interface.
turns out that thrall spells are seemingly the only arceuus spell with a
magic-level based duration that uses the boosted level, at least out of
the ones we have timers for
Setting the start time to null isn't necessary, since IN_MENU is marked
shouldRestart, it always resets the start time when the status is changed to
menu. This was clearing it, forcing a presence update, and then erroring when
trying to compute the original start time. It also would have never really unset,
even if it wasn't erroring later, due to IN_MENU also being unclearable, and
so would have never been removed in the first place.
Additionally the status reset test is also wrong since it is testing the end
timestamp which has never been used by us, making the test useless.
The non-items examine info has been broken for years, and the wiki already has item examines anyway, so we can use those in the future if we need them.
Prior to this commit, ThreeStepCrypticClue simply returned a
concatenation of the active step locations without filtering the mapped
locations in any way. This could lead to NPEs in the plugin as some
cryptic clues have null locations for steps which have no specific
location or have a variable location. This commit addresses this by
making CrypticClue's location field `@Nullable`, filtering null
locations from ThreeStepCrypticClue's getLocations stream, and by adding
a test to ensure ThreeStepCrypticClue's getLocations method cannot yield
any null entries in its return value.
FriendsChatManager predates the api having an ability to look up clan
members by name, without doing string matching, hence the caching. This
is no longer necessary as we can do efficient lookups of players by name
now.
Also remove the old isMember utility function which is just duplicated
from the friends chat manager.