Allows user to add multiple Discord webhooks for pace pings. Each webhook operates independently with distinct states, and can have different ping points and messages.
Changes
Added MultiPacePingManager class, which exposes a List of PacePingManager objects
Modified PacePingManager.PaceState to include a PingName field
Modfied PacePingManager State and SecretState paths to include indices (e.g. state.json => state_0.json and state-secret_DONT_SHOW_ON_STREAM => state-secret_DONT_SHOW_ON_STREAM_0.json)
Added migration logic so that old CCTs will automatically rename ping state files on update
Added utilities to delete and move PacePingManager state files
Many changes to Pace Ping Settings
Added selector to choose between different pings
Note that this is only used to select which ping you're modifying in settings - all webhooks still operate, unless disabled for the map!
Added helper function to live update setting components on ping switch or state file reload
Added import ping name from clipboard
Added double confirm button to delete current selected ping
Modified Debug map ping marker to include the name of the webhook pinging at that room
Tested
Individual pace pings still function the same
Adding new pace pings works, importing webhooks/messages/etc. correctly modifies the currently selected ping
Switching pings in the selector properly live updates settings to that pings properties
Reloading the state file will now live update relevant info in the settings page
Deleting a ping will delete it from disk, appropriately move the indices of all other pings to fill in the hole, remove it from MultiPacePingManager, and remove it from the ping selector
WIP
Most things are tested/functional, but a few things still remain
Allows user to add multiple Discord webhooks for pace pings. Each webhook operates independently with distinct states, and can have different ping points and messages.
Changes
MultiPacePingManager
class, which exposes a List ofPacePingManager
objectsPacePingManager.PaceState
to include aPingName
fieldPacePingManager
State and SecretState paths to include indices (e.g.state.json
=>state_0.json
andstate-secret_DONT_SHOW_ON_STREAM
=>state-secret_DONT_SHOW_ON_STREAM_0.json
)PacePingManager
state filesTested
MultiPacePingManager
, and remove it from the ping selectorWIP
Most things are tested/functional, but a few things still remain