1.4 KiB
1.4 KiB
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()호출 추가.
기술적 특징
- 로테이션 시스템: 4가지 템플릿(서버 수, 도움말, 기능 홍보, 버전 정보)을 5분 간격으로 순환하며 표시합니다.
- 실시간 반영: 서버 입장/퇴장 이벤트를 트리거로 현재 서버 수를 즉시 UI에 반영합니다.
- 타이머 관리:
startActivePresence호출 시 기존 타이머가 있다면 정리(Clear)하여 중복 실행을 방지합니다.
검증 결과
- 컴파일 테스트:
yarn tsc --noEmit실행 결과 오류 없음. - 로직 검증: 각 이벤트 핸들러에서
PresenceService가 올바르게 호출됨을 확인.