This parses the SPacketPlayerListHeaderFooter packet and splits up each effect in the footer, then runs a regex on it.
The regex has three groups, one for the symbol and % modifier, one for the actual name, and one for the time.
This is relayed to ConsumableTimerOverlay.addStaticTimer()
Speaking of addStaticTimer(),
ConsumableContainer has been refactored to TimerContainer (because we deal with more than just consumable anyway)
TimerContainer is now abstract
StaticTimerContainer extends TimerContainer:
Static timers do not count down automatically. Instead, the time they carry with them is a static string that must be updated manually.
Static timers also have a prefix field, which can be used to prepend a string to the timer name. (Tab list parsing uses this for the symbols and % modifiers)
Static timers are pretty much only meant to be used with the tab effects list and maybe multi-totem tracking once that's done
DynamicTimerContainer extends TimerContainer:
This is pretty much what ConsumableContainer previously was. The chest and gather cooldown timers still use this.
Previous methods of parsing these timers are gone:
This include the chat parsing for scrolls, crafteds, foods, etc
Includes the chat parsing for class spells (vanish, escape speed, war scream)
These are all listed in the tab effects list.
Hashmap of effects and their associated IdentificationHolder are gone:
This served no other purpose other than categorizing effects under the symbol for Scrolls, which is now done anyway with the tab list symbol
Config for spell effects and consumable effects have been squished together, as they both appear in the tab list together
In this pr:
SPacketPlayerListHeaderFooter
packet and splits up each effect in the footer, then runs a regex on it.ConsumableTimerOverlay.addStaticTimer()
addStaticTimer()
,https://user-images.githubusercontent.com/57310593/197334697-cfb28911-c750-4b18-a849-3e43514fefff.mp4
Regex used to test is here: https://regexr.com/716p1