-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
✨ 기능 개요
디스코드 챗봇 "웬디"의 명령어 핸들러 및 시간 기반 스케줄러 구현
🧩 주요 작업 내용
-
WendyCommand.java- 디스코드 명령어 핸들러 -
WendyScheduler.java- 시간 기반 자동 메시지 스케줄러 -
VoteResult.java- 투표 현황 DTO -
DiscordBotConfig.java- Spring Boot + JDA 연동 설정 -
WendyService.java- 서비스 인터페이스 정의 -
WendyServiceStub.java- 임시 구현체 (테스트용)
💬 추가 설명
구현된 명령어
| 명령어 | 기능 |
|---|---|
웬디 시작 |
세션 시작 + 참석자 체크(✅) + 날짜 범위 질문 |
웬디 종료 |
세션 종료 + 스케줄러 중지 |
웬디 재투표 |
기존 참석자로 재투표 |
/help, 웬디 도움말 |
명령어 안내 |
스케줄러 동작
| 시점 | 동작 |
|---|---|
| 10분 후 | 첫 투표 현황 공유 |
| 11분~ | 1분마다 신규 투표자 체크 |
| 15분, 1시간, 6시간, 12시간, 24시간 | 미투표자 독촉 |
폴더 구조
com.workingdead/
├── config/
│ └── DiscordBotConfig.java
├── chatbot/
│ ├── command/
│ │ └── WendyCommand.java
│ ├── scheduler/
│ │ └── WendyScheduler.java
│ └── dto/
│ └── VoteResult.java
└── meet/service/
├── WendyService.java # 인터페이스
└── WendyServiceStub.java # 임시 구현 (TODO 주석 참고)
⚠️ 다음 작업 필요 (WendyServiceStub 실제 구현)
WendyServiceStub.java는 테스트용 껍데기입니다. 아래 메서드들의 실제 구현이 필요합니다:
| 메서드 | 설명 | 힌트 |
|---|---|---|
createVote() |
투표 생성 후 URL 반환 | VoteService 활용 |
getVoteStatus() |
투표 현황 → VoteResult 변환 | VoteResultService 활용 |
getNonVoterIds() |
미투표자 디스코드 ID 반환 | 참석자 - 투표자 |
hasNewVoter() |
신규 투표자 감지 | lastCheckTime 비교 |
자세한 내용은 WendyServiceStub.java 주석 참고!
📎 참고 자료
- Discord Developer Portal에서 봇 토큰 발급 필요
application.yml에discord.token설정 필요- Privileged Gateway Intents 활성화 필요 (MESSAGE CONTENT, SERVER MEMBERS)
Metadata
Metadata
Assignees
Labels
No labels