Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

raid-time-bot

고정 공격대(레이드)의 시간 조율을 돕는 디스코드 봇. 멤버별 가능 시간을 모아 겹치는 최적 시간대를 계산하고, 레이드 소집·참석 집계·시작 전 알림까지 처리한다.

기능

커맨드 설명
/공대추가 [멤버] 고정 공대 명단에 추가 (비우면 본인)
/공대제외 [멤버] 명단에서 제외
/공대 현재 명단 보기
/가능시간 <요일> <시작> <종료> 참여 가능한 시간대 등록 (여러 번 등록 가능)
/내일정 내가 등록한 가능 시간 보기
/일정초기화 내 가능 시간 전체 삭제
/조율 [개수] 겹치는 최적 시간대 랭킹 계산
/레이드소집 <제목> <시간> 레이드 소집 + 참석 버튼(✅🤔❌) 집계
  • 시간 조율은 명단(roster)에 등록된 인원만 대상으로 계산한다. 명단이 비어 있으면 가능 시간을 등록한 모두를 대상으로 한다.
  • 레이드 소집 메시지의 참석 버튼은 봇을 재시작해도 계속 동작한다(persistent view).
  • 시작 30분 전 참석자를 멘션해 자동 알림한다.

설치 & 실행

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

cp .env.example .env      # 그 다음 .env 에 봇 토큰과 GUILD_ID 입력
python bot.py

디스코드 봇 토큰 발급 (최초 1회)

  1. https://discord.com/developers/applicationsNew Application
  2. 좌측 BotReset Token → 토큰 복사 → .envDISCORD_TOKEN 에 붙여넣기
  3. 같은 화면에서 특권 인텐트(Privileged Intents)는 켤 필요 없음 (슬래시 커맨드만 사용)
  4. 좌측 OAuth2 → URL Generator:
    • Scopes: bot, applications.commands
    • Bot Permissions: Send Messages, Embed Links
    • 생성된 URL 로 봇을 서버에 초대
  5. 서버 설정 → 고급 → 개발자 모드 켠 뒤, 서버 아이콘 우클릭 → ID 복사.envGUILD_ID 에 입력 (개발 중에는 GUILD_ID 를 넣어야 슬래시 커맨드가 즉시 뜬다. 비우면 글로벌 등록이라 반영까지 최대 1시간)

데이터

  • 모든 상태는 data/raid.db (SQLite) 에 저장된다. 백업은 이 파일만 복사하면 된다.
  • .envdata/.gitignore 로 커밋에서 제외된다.

구조

bot.py            진입점 · 코그 로딩 · 슬래시 커맨드 동기화
db.py             SQLite 스키마 · 커넥션
util.py           요일 라벨 · 시간대
cogs/roster.py       고정 공대 명단
cogs/availability.py 가능 시간 등록
cogs/coordinate.py   겹치는 시간대 계산
cogs/raid.py         레이드 소집 · 참석 버튼 · 리마인더

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages