- Admin.jsx: 모드 번역 파일 일괄 업로드 큐 시스템 구현 - 여러 JAR 파일 선택 및 대기열 관리 - 파일별 상태 표시 (pending/processing/success/error) - 등록된 모드 목록 접기/펼치기 UI (모드팩 스타일) - 삭제 확인 다이얼로그 추가 - 토스트 색상 다양화 (success/warning/error) - PlayerStatsPage.jsx: 아이템/몹 아이콘 없을 시 ImageOff 표시 - admin.js: 모드 번역 API 개선 - db.js: 모든 모드 번역 로드 (minecraft 외 모드 포함) |
||
|---|---|---|
| .. | ||
| data | ||
| lib | ||
| routes | ||
| services | ||
| package.json | ||
| README.md | ||
| server.js | ||
🖥️ Minecraft Dashboard - Backend
마인크래프트 서버 상태를 조회하고 실시간으로 전달하는 Node.js API 서버입니다.
🛠️ 기술 스택
| 기술 | 설명 |
|---|---|
| Node.js | 런타임 환경 |
| Express | 웹 프레임워크 |
| Socket.IO | 실시간 통신 |
| minecraft-server-util | 서버 상태 조회 |
| MySQL2 | 데이터베이스 연동 |
📡 API 엔드포인트
REST API
| 엔드포인트 | 설명 |
|---|---|
GET /api/status |
서버 상태 조회 |
GET /api/players |
플레이어 목록 |
GET /api/worlds |
월드 정보 |
WebSocket 이벤트
| 이벤트 | 방향 | 설명 |
|---|---|---|
status |
Server → Client | 서버 상태 브로드캐스트 |
players |
Server → Client | 플레이어 목록 전송 |
get_player |
Client → Server | 플레이어 상세 요청 |
player_detail |
Server → Client | 플레이어 상세 응답 |
get_worlds |
Client → Server | 월드 목록 요청 |
worlds |
Server → Client | 월드 목록 응답 |
get_player_stats |
Client → Server | 플레이어 통계 요청 |
player_stats |
Server → Client | 플레이어 통계 응답 |
🚀 실행 방법
# 개발 모드
npm install
npm start
서버는 포트 80에서 실행됩니다.
📁 구조
backend/
├── server.js # 메인 서버 (Express + Socket.IO)
├── routes/
│ └── api.js # REST API 라우트
├── lib/
│ ├── db.js # MySQL 연결 및 번역 로드
│ ├── minecraft.js # 마인크래프트 서버 통신
│ ├── icons.js # 아이콘 유틸리티
│ └── s3.js # S3 스토리지 연동
└── data/ # 정적 데이터 파일
⚙️ 환경 변수
| 변수 | 설명 |
|---|---|
DB_HOST |
MariaDB 호스트 |
DB_USER |
데이터베이스 사용자 |
DB_PASSWORD |
데이터베이스 비밀번호 |
DB_NAME |
데이터베이스 이름 |
MOD_API_URL |
마인크래프트 Mod API URL |