Kord/Docs/WorkDone/2026-03-27_Presence_Impleme...

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() 호출 추가.

기술적 특징

  1. 로테이션 시스템: 4가지 템플릿(서버 수, 도움말, 기능 홍보, 버전 정보)을 5분 간격으로 순환하며 표시합니다.
  2. 실시간 반영: 서버 입장/퇴장 이벤트를 트리거로 현재 서버 수를 즉시 UI에 반영합니다.
  3. 타이머 관리: startActivePresence 호출 시 기존 타이머가 있다면 정리(Clear)하여 중복 실행을 방지합니다.

검증 결과

  • 컴파일 테스트: yarn tsc --noEmit 실행 결과 오류 없음.
  • 로직 검증: 각 이벤트 핸들러에서 PresenceService가 올바르게 호출됨을 확인.