25 lines
1.4 KiB
Markdown
25 lines
1.4 KiB
Markdown
# 2026-03-27: 봇 상태 메시지(Presence) 기능 구현
|
|
|
|
## 개요
|
|
봇의 Discord Presence를 동적으로 변경하여 생동감을 부여하고 서버 수를 실시간으로 반영하는 시스템을 구현했습니다.
|
|
|
|
## 변경 사항
|
|
|
|
### 신규 생성
|
|
- **`src/services/PresenceService.ts`**: 상태 메시지 로테이션(5분 주작) 및 즉시 업데이트 로직 담당.
|
|
- **`src/events/guildDelete.ts`**: 서버 퇴장 시 상태 메시지의 서버 수를 즉시 갱신하기 위한 이벤트 핸들러.
|
|
- **`Docs/Plans/Bot_Presence_Plan.md`**: 기능 기획서.
|
|
|
|
### 수정 사항
|
|
- **`src/events/ready.ts`**: 봇 부팅 시 `PresenceService.startActivePresence()` 호출 추가.
|
|
- **`src/events/guildCreate.ts`**: 봇이 새 서버에 초대될 때 `PresenceService.updatePresence()` 호출 추가.
|
|
|
|
## 기술적 특징
|
|
1. **로테이션 시스템**: 4가지 템플릿(서버 수, 도움말, 기능 홍보, 버전 정보)을 5분 간격으로 순환하며 표시합니다.
|
|
2. **실시간 반영**: 서버 입장/퇴장 이벤트를 트리거로 현재 서버 수를 즉시 UI에 반영합니다.
|
|
3. **타이머 관리**: `startActivePresence` 호출 시 기존 타이머가 있다면 정리(Clear)하여 중복 실행을 방지합니다.
|
|
|
|
## 검증 결과
|
|
- **컴파일 테스트**: `yarn tsc --noEmit` 실행 결과 오류 없음.
|
|
- **로직 검증**: 각 이벤트 핸들러에서 `PresenceService`가 올바르게 호출됨을 확인.
|