동아리 채널에서 욕설을 사용할 때마다 자동으로 벌금을 부과하고 기록하는 디스코드 봇입니다.
- 욕설 감지 시 채널에 경고 메시지 자동 전송
- 유저별 벌금 자동 기록 (SQLite)
- 메시지 우클릭으로 욕설 신고 → 관리자 검토 후 벌금 확정
- 관리자 슬래시 커맨드로 데이터 관리 (납부 처리, 통계, 취소 등)
- 욕설 1회당 벌금 금액 설정 가능
| 커맨드 | 설명 | 권한 |
|---|---|---|
/순위 |
미납 벌금 TOP 10 리더보드 | 전체 |
신고 (메시지 우클릭) |
메시지를 욕설로 신고 (관리자 검토 후 벌금 확정) | 전체 |
/도움말 |
사용 가능한 커맨드 목록 확인 | 전체 |
/목록 |
미납 벌금 전체 목록 (유저별 요약) | 관리자 |
/내역 @유저 |
특정 유저 벌금 상세 내역 | 관리자 |
/납부 @유저 |
유저 벌금 납부 처리 | 관리자 |
/검토 |
대기 중인 신고 목록 확인 및 승인/거절 | 관리자 |
/신고취소 [ID] |
벌금 기록을 ID로 취소 | 관리자 |
/벌금설정 [금액] |
욕설 1회당 벌금 금액 변경 | 관리자 |
/통계 |
전체 통계 및 욕설 TOP 10 랭킹 | 관리자 |
- Node.js v22 이상 (네이티브 SQLite API 사용)
npm installcp .env.example .env.env 파일을 열어 아래 값을 입력합니다:
DISCORD_TOKEN— Discord Developer Portal에서 발급한 봇 토큰CLIENT_ID— 봇의 애플리케이션 IDGUILD_ID— 개발/테스트할 서버 ID (슬래시 커맨드 즉시 반영용, 선택)ADMIN_ROLE_NAME— 관리자 역할 이름 (기본값:관리자)DB_PATH— SQLite 데이터베이스 파일 경로 (기본값:./fines.db, 선택)
npm run deploynpm start봇이 메시지를 읽으려면 Privileged Gateway Intents에서 MESSAGE CONTENT INTENT를 활성화해야 합니다.
profanityList.js의 PROFANITY_LIST 배열에 단어를 추가하거나 제거하세요.