feat: tournament Discord voice channel management#127
Open
Conversation
Add automatic voice channel creation and player movement for tournament matches. When a tournament goes Live, a muted ready room is created. When matches reach WaitingForCheckIn, per-team voice channels are created with descriptive names (e.g. "Fnatic - Grand Finals") and players are moved from the ready room. Cleanup happens on match/tournament completion.
4 tasks
…ipped check-in Adds Veto and Live status triggers for voice channel creation so tournaments that skip check-in still get Discord voice channels. A duplicate guard in createMatchVoiceChannels prevents double creation when multiple triggers fire in sequence.
- Increase tournament voice cache TTL from 7 to 30 days to prevent channel orphaning for long-running tournaments - Cache brand name query in getArchiveCategoryName for 1 hour to avoid redundant Hasura queries on every call - Remove redundant ready room deletion in removeTournamentVoice since the category children loop already handles it - Remove unreachable SingleElimination branch in getBracketRoundLabel
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
discord_guild_id(Discord Server ID) anddiscord_voice_enabled(toggle)Changes
DiscordTournamentVoiceService+ module for ready room, match channels, player movement, cleanupgetBracketRoundLabelutility (ports frontend round label logic with English strings for Discord)discord_guild_idanddiscord_voice_enabledto tournamentstournament_eventsevent trigger on status columnDiscordBotVoiceChannelsService— optionalchannelNameparam oncreateMatchVoiceChannel()TournamentsController—tournament_eventshandler (Live → ready room, terminal → cleanup)MatchesController— tournament voice hooks onWaitingForCheckInTournamentsModuleandMatchesModuleCompanion PR
Test plan
discord_guild_idanddiscord_voice_enabledcolumns existtournament_eventswebhookdiscord_guild_idand enable voice on a tournament, go Live → verify category + muted ready room createddiscord_voice_enabledis false