feat(editor): add WSCB (Server Channel Broadcast) open catalog format

Novel replacement for the hardcoded login-MOTD chain,
restart-warning announcements, and rotating /help-channel
tips. Each entry is one scheduled or event-triggered
broadcast with channelKind (Login / SystemChannel /
RaidWarning / MOTD / HelpTip), faction filter,
level-range gating, and optional periodic interval for
ticker-driven channels.

Three preset emitters covering the canonical operational
broadcast patterns: makeMotd (4 login MOTDs — welcome
banner, patch summary, Discord, forum), makeMaintenance
(3 RaidWarning entries firing at 15min/5min/60s before
restart, intervalSeconds=0 since they're triggered by
the cron scheduler, not a self-timer), makeHelpTips (6
rotating /help-channel tips on a 600s cycle covering
talents/mounts/auction/professions/dungeon-finder/
hearthstone with appropriate level gates).

Validator catches several real misconfigurations: empty
messageText (no payload), interval>0 with login/MOTD
channel (timer ignored — those fire on session enter),
intervalSeconds<10 (player-spam error), <60 (warning),
text>255 chars (server truncation), level-range
inversions, factionFilter=0 (no audience).

Format count 97 -> 98. CLI flag count 1104 -> 1109.
This commit is contained in:
Kelsi 2026-05-10 00:31:15 -07:00
parent 2d99f82531
commit 57df129404
10 changed files with 744 additions and 0 deletions

View file

@ -300,6 +300,8 @@ const char* const kArgRequired[] = {
"--gen-hrt", "--gen-hrt-capitals", "--gen-hrt-inns",
"--info-whrt", "--validate-whrt",
"--export-whrt-json", "--import-whrt-json",
"--gen-scb", "--gen-scb-maintenance", "--gen-scb-helptips",
"--info-wscb", "--validate-wscb",
"--gen-weather-temperate", "--gen-weather-arctic",
"--gen-weather-desert", "--gen-weather-stormy",
"--gen-zone-atmosphere",