동봇은 디스코드 서버 관리용 봇입니다.
현재 포함된 첫 기능:
- 서버에 봇이 처음 추가되면 봇을 추가한 관리자에게 초기 설정 안내 전송 (조회 실패 시 소유자 fallback)
- 초기 설정 메시지에서 생성 카테고리 선택 후 "방 생성 기능" 활성화
- "방 생성" 음성 채널에 들어가면 "음성 수다방 1, 2, 3..." 자동 생성 후 이동
- 생성된 수다방이 비면 자동 삭제
- 동봇이 생성한 방만 삭제 (방 생성 채널은 삭제하지 않음)
- /통화방 명령어로 현재 참여 중인 음성 수다방의 인원수/이름 수정
- /tts 명령어로 TTS 켜기/끄기 및 언어 설정
- /초기설정 명령어로 방생성/채팅로그/들낙로그 설정
- /투표 명령어로 채널 지정 투표 생성(익명/공개, 현황/결과/종료)
Node.js 20 이상이 필요합니다.
npm install프로젝트 루트에 .env 파일을 만들고 값을 채워주세요.
필수:
DISCORD_TOKENFIREBASE_API_KEYFIREBASE_AUTH_DOMAINFIREBASE_PROJECT_IDFIREBASE_STORAGE_BUCKETFIREBASE_MESSAGING_SENDER_IDFIREBASE_APP_ID
선택:
FIREBASE_MEASUREMENT_ID(선택)
Firebase는 필수입니다. 값이 누락되면 봇이 시작되지 않습니다.
npm start- 봇을 서버에 초대
- 봇을 추가한 관리자 DM으로 초기 설정 메시지 수신
- 초기 메시지에서 카테고리 선택 또는 "빠른 추가 (기본 위치)" 클릭
- 선택한 카테고리(또는 기본 위치)에 "방 생성" 채널 생성
- 유저가 해당 채널 입장 시 "음성 수다방 N" 생성 및 자동 이동
- 수다방 인원이 0명이 되면 자동 삭제
- /통화방 인원 값: 현재 참여 중인 음성 수다방 최대 인원 변경
- 예시: /통화방 인원 3
- 값 0은 무제한
- /통화방 이름 값: 현재 참여 중인 음성 수다방 이름 변경
- 예시: /통화방 이름 안녕
- /tts O 또는 /tts o: TTS 켜기
/초기설정에서 선택한 TTS 입력 모드로 켜짐- 전용 채팅방 모드: 특정 채팅방 메시지만 읽음
- 자유 모드: 서버 어느 채팅방에서든 읽음
- 실행하면 봇이 내가 참여 중인 음성 채널로 입장
- 같은 음성채널에 있는 다른 유저도 같은 조건으로 함께 사용 가능
- /tts X 또는 /tts x: TTS 끄기
- /tts 설정: 언어 선택 메뉴 열기 (선택한 언어로 읽기)
- /tts 설정 한국어, /tts english 처럼 명령어 입력으로 바로 언어 변경 가능
- /초기설정: 초기설정 패널 열기
- TTS 입력 방식 설정
- 전용 채팅방 모드 버튼
- 자유 모드(어디서든) 버튼
- 전용 TTS 채팅방 선택
- 로그 카테고리+채널 자동 생성 버튼 (원클릭)
- 로그 카테고리 생성
- 📜 | 채팅-로그, 📖 | 들낙-로그 채널 생성
- 방생성 켜기/끄기
- 방생성 카테고리 선택
- 채팅로그 켜기/끄기
- 들낙로그 켜기/끄기
- 채팅로그 채널 선택
- 들낙로그 채널 선택
- 들낙 멘션 설정(몇 회 이상 반복 시 어떤 역할 멘션할지)
- TTS 입력 방식 설정
- /투표 채널 [유형]
- 명령어 입력 시 "투표 생성하기" 모달 오픈
- 주제 + 선택지(엔터 구분, 최대 10개) 입력 후 투표 메시지 생성
- 유형: 익명투표(기본) 또는 공개투표
- 버튼: N번 투표, 투표 결과, 투표 종료
- 공개투표는 메시지/결과에 투표자 표시
- 투표 종료는 관리자 또는 투표 생성자만 가능
주의:
- 이 명령어는 동봇이 생성한 음성 수다방에서만 동작합니다.
- 방 생성 기준 채널에서는 동작하지 않습니다.
- TTS는 동봇이 생성한 수다방이 아니어도, 사용자가 참여한 어떤 음성 채널에서도 동작합니다.
- 다른 채팅방 메시지는 TTS 입력으로 처리하지 않습니다.
- 채팅로그 켜기를 누르면 로그 채널이 자동 생성되며, 메시지 삭제를 감지해 전송합니다.
- 들낙로그 켜기를 누르면 로그 채널이 자동 생성되며, 음성채널 입장/퇴장/이동 로그를 전송합니다.
봇에 다음 권한이 필요합니다.
- 채널 관리 (Manage Channels)
- 음성 채널 이동 (Move Members)
- 메시지 전송 (Send Messages)
- 음성 채널 연결 (Connect)
- 발언 (Speak)