노션 링크 : https://www.notion.so/27da3c4c42a48010a908c9d7a935cae3?source=copy_link
공부 효율을 높이기 위한 디스코드 스터디 지원 + 음악 재생 봇
Mudy는 학습 환경을 더 편하게 만들기 위해 설계된 Discord Bot으로,
편리한 스터디 관리 기능 + 집중을 도와주는 음악 재생 기능을 동시에 제공합니다.
본 프로젝트는 우테코 오픈미션(제한 협업 미션)으로 진행되었으며, 다음 두 명이 함께 개발했습니다.
- 🎵 Music 모듈 담당 — @hheojiwon
- 📚 Study 모듈 담당 — @h0108j
- 평소 스터디를 하며 느꼈던 불편한 점을 해결하고자 기획
- Discord의 높은 활용성을 이용해 손쉽게 공부 환경 관리
- 처음 사용하는 도구(JDA + Discord Bot + 🪝LavaPlayer)에 도전하는 학습 목적의 프로젝트
- 협업 규칙:
- 모든 PR은 반드시 상대방 코드 리뷰 후 머지
- 새로운 기능 사용 시 공식 문서 링크 + 요약 정리 필수
mudy.common
- 공통 유틸, 상수, 인터페이스
mudy.global
├── config
│ └── BotConfig.java
├── exception
│ └── 전역 예외 처리
└── util
└── 전역 유틸
mudy.music
├── command
├── listener // ⭐ 음악 전용 리스너
├── manager
├── model
└── service
mudy.study
├── command
├── listener // ⭐ 스터디 전용 리스너
├── model
├── service
└── util
| 기능 | 설명 |
|---|---|
/재생 [theme] |
음악 재생 시작 (테마: 케이팝/피아노/팝송) |
/정지 |
재생 중단 + 큐 전체 삭제 |
/일시정지 |
현재 곡 일시정지 |
/다시재생 |
일시 정지된 음악 다시 재생 |
/다음곡 |
다음 트랙으로 이동 |
/현재곡 |
현재 재생 중인 음악 정보 표시 |
LavaPlayer 사용
🔗 https://github.com/lavalink-devs/lavaplayer#readme
| 기능 | 설명 |
|---|---|
/즐겨찾기추가 |
현재 재생 중인 곡을 즐겨찾기에 저장 |
/즐겨찾기목록 |
저장된 즐겨찾기 목록 표시 |
/즐겨찾기삭제 number |
특정 번호의 즐겨찾기 삭제 |
/즐겨찾기이동 from to |
즐겨찾기 순서 변경 |
| 기능 | 설명 |
|---|---|
/볼륨 level(0–100) |
음악 볼륨 조절 |
| 자동 저장 | 유저별 이전 볼륨값 저장 |
| 기능 | 설명 |
|---|---|
/과제등록 title deadline |
과제 등록 |
/과제목록 |
등록된 과제 조회 |
/과제완료 title |
과제 완료 처리 |
/과제삭제 title |
과제 삭제 |
/과제완료율 |
개인 완료율 조회 |
| 기능 | 설명 |
|---|---|
/스터디출석 |
출석 체크 |
/스터디종료 |
스터디 종료 및 시간 합산 |
/스터디순위 |
누적 공부시간 기반 랭킹 표시 |
- JDA (Java Discord API) – Discord Slash Command 기반
- Lavaplayer – 음악 재생 엔진
- Java 17
- Gradle
- In-Memory 저장소 (간단한 스터디/플레이리스트 데이터 관리)