# Kord - 임시 음성 채널 제어 (Temp Voice Channels) ## 체인지로그 (Changelog) - **2026-03-27**: 임시 채널 자동 생성/삭제 로직, 티어 연동, 방장 관리 UI(Rename, Limit, Lock, Kick, Ban) 추가 ## 본문 (Body) ### 개요 `Kord` 봇은 지정된 '생성용 채널(Generator Channel)'에 유저가 입장할 경우, 해당 유저만을 위한 '임시 음성 채널(Temporary Voice Channel)'을 동적으로 생성하고 관리합니다. 유저가 생성용 채널에 접속하면 봇은 데이터베이스의 티어와 기존 방 설정 내역을 검사하여 새로운 음성 채널을 만들고 권한을 연동해 줍니다. 반대로 누군가 방에서 퇴장할 때마다 조건에 맞춰 자동으로 삭제하여 서버 깔끔함을 유지합니다. ### 주요 기능 사양 1. **임시 채널 생성 원리**: - 트리거 이벤트: `voiceStateUpdate` (유저가 `VoiceGenerator`에 지정된 채널 ID에 접속 시 확인) - 중복 검증: 이미 본인의 임시 채널이 있는 유저는 새 채널을 생성하지 않고 기존 방으로 위치를 이동시킵니다. - 이름 설정: `UserVoiceProfile` 정보를 불러와 `<유저 지정 이름>`으로, 없다면 `<유저명>'s Room` 기본 형식으로 생성합니다. 2. **삭제 조건 (`DeleteCondition`)**: - `EMPTY` (기본값): 채널 안에 남아있는 유저 인원수(`members.size`)가 `0`이 되는 순간 방 폭파. - `OWNER_LEAVE`: 방장(소유자)이 방을 나가는 즉시 남은 인원수와 상관없이 삭제. 3. **인터랙션(UI) 제어**: 채널 생성 시 텍스트 채팅창을 통하여 방장만 조작할 수 있는 **버튼 컨트롤 패널**이 송신됩니다. - 버튼 클릭 (InteractionCreate): 커스텀 ID(예: `vc_rename_`)와 상호작용. - 조작 가능한 기능: 채널 이름 변경, 인원수 제한 변경, 외부 접속 여부 토글(Lock/Unlock), 유저 강퇴(Kick), 유저 차단 및 은신 (Ban/Hide). ### 기술적 특이사항 (의사결정) - 차단(Ban) 기능 모델링: 단순히 접속 거부가 아니라 "방 자체를 안 보이게" 조치할 수 있도록 특정 유저의 채널 오버라이드(PermissionOverwrite)에서 `ViewChannel`과 `Connect` 권한을 동시에 `false`로 주입합니다.