- TournamentPlayer/TournamentPairing/TournamentSettings move into
serverinfo_tournament.proto, imported by both the tournament event and
the tournament game commands, so Command_CreateGame reaches them without
crossing the command/event boundary
- Command_CreateGame carries the full TournamentSettings instead of a
duplicate games_per_match field, keeping game creation and mid-game
changes on one wire representation
- draw results are explicit: Command_ReportMatchResult and
TournamentPairing gain is_draw, so a report stays distinguishable from
an unset -1 winner
- pairing match-wins are uint32 like the other game counts
Adds the protocol layer for the tournament game mode:
- Event_TournamentState (2027) carrying phase, round counters, player
standings, pairings, and settings (games_per_match)
- Command_ReportMatchResult / Command_AdvanceTournament /
Command_TournamentSettingsSelect game command extensions (1037-1039)
- is_tournament flag on Command_CreateGame and ServerInfo_Game;
is_tournament and parent_game_id on Event_GameStateChanged
Took 13 minutes
* [Server] Add room chat channels with per-channel fan-out and history
* Fixup: redact all channel histories on message removal
removeSaidMessages only redacted the main history, so banned/warned
content stayed visible to late joiners on every other channel.
Drop the unused channelId parameter and redact up to amount messages
per channel across the whole channelChatHistory map.
* [Server] Validate room channel ids and fix catalog schema per review
- servatrice.sql: expand rooms_channels access_level enum to full set
to match 0037->0038 migration
- servatrice.cpp: skip empty, reserved (__main__) and duplicate channel
ids when loading from ini and DB with qWarning
- server_protocolhandler.cpp: clarify catalog replay comment (filtering
happens in moderator stack)
- server_room: drop duplicate channelIndex, linear search preserves
catalog order
* [Server] Fix server_room.cpp formatting per clang-format-18
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
Co-authored-by: BruebachL <bruebachl@cockatrice.example>