Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: 디스코드 연동 세팅 #69

Merged
merged 14 commits into from
Feb 12, 2024
Merged

Conversation

uwoobeat
Copy link
Member

@uwoobeat uwoobeat commented Feb 12, 2024

🌱 관련 이슈

📌 작업 내용 및 특이사항

  • JDA 관련 세팅을 완료했습니다.
  • 디스코드 봇은 기본적으로 리스너 기반으로 작동합니다.
  • 해당 리스너를 컴포넌트로 추가합니다. 이때 빈 후처리기를 통해 @Listener 로 annotated 된 빈을 jda.addEventListener 을 통해 동적으로 리스너로 등록되도록 해주었습니다.
  • 이렇게 하면 매번 리스너를 구현할 때마다 jda config에서 리스너를 추가할 필요가 없습니다.
  • 테스트에 필요한 핑퐁 리스너를 추가해두었습니다. GDSC 개발채널 링크로 테스트 서버 접속하셔서 !ping 으로 테스트 가능합니다.

📝 참고사항

테스트 관련 이슈

  • 리스너 빈 후처리기(ListnerBeanPostProcessor)의 경우 JDA 외부 의존성을 주입받습니다. 따라서 @Component 가 아니라 DiscordConfig 에서 @Bean 으로 등록해주어야 합니다.
  • 이떄 테스트 환경에서 디스코드 봇 토큰 값을 주입받을 수 없으므로 JDA 초기화에 실패합니다. 따라서 테스트 환경에서는 discord.enabled: false 를 설정하고 @ConditionalOnProperty 를 통해 로드하지 않도록 설정합니다.
  • 한편 리스너 빈 후처리기의 경우 JDA가 존재하지 않은 경우 초기화되지 않아야 하므로 @ConditionalOnBean 으로 설정해두었습니다.

📚 기타

@uwoobeat uwoobeat self-assigned this Feb 12, 2024
@uwoobeat uwoobeat requested a review from a team as a code owner February 12, 2024 15:58
Copy link
Member

@Sangwook02 Sangwook02 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@uwoobeat uwoobeat merged commit 09a2837 into develop Feb 12, 2024
1 check passed
@uwoobeat uwoobeat deleted the chore/27-discord-setting branch February 12, 2024 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

⚙️ 디스코드 연동 세팅
2 participants