✨ 기능 개요
디스코드 챗봇 "웬디"의 명령어 핸들러 및 시간 기반 스케줄러 구현
🧩 주요 작업 내용
💬 추가 설명
구현된 명령어
| 명령어 |
기능 |
웬디 시작 |
세션 시작 + 참석자 체크(✅) + 날짜 범위 질문 |
웬디 종료 |
세션 종료 + 스케줄러 중지 |
웬디 재투표 |
기존 참석자로 재투표 |
/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)
✨ 기능 개요
디스코드 챗봇 "웬디"의 명령어 핸들러 및 시간 기반 스케줄러 구현
🧩 주요 작업 내용
WendyCommand.java- 디스코드 명령어 핸들러WendyScheduler.java- 시간 기반 자동 메시지 스케줄러VoteResult.java- 투표 현황 DTODiscordBotConfig.java- Spring Boot + JDA 연동 설정WendyService.java- 서비스 인터페이스 정의WendyServiceStub.java- 임시 구현체 (테스트용)💬 추가 설명
구현된 명령어
웬디 시작웬디 종료웬디 재투표/help,웬디 도움말스케줄러 동작
폴더 구조
WendyServiceStub.java는 테스트용 껍데기입니다. 아래 메서드들의 실제 구현이 필요합니다:createVote()getVoteStatus()getNonVoterIds()hasNewVoter()자세한 내용은
WendyServiceStub.java주석 참고!📎 참고 자료
application.yml에discord.token설정 필요