- Admin.jsx: 모드 번역 파일 일괄 업로드 큐 시스템 구현
- 여러 JAR 파일 선택 및 대기열 관리
- 파일별 상태 표시 (pending/processing/success/error)
- 등록된 모드 목록 접기/펼치기 UI (모드팩 스타일)
- 삭제 확인 다이얼로그 추가
- 토스트 색상 다양화 (success/warning/error)
- PlayerStatsPage.jsx: 아이템/몹 아이콘 없을 시 ImageOff 표시
- admin.js: 모드 번역 API 개선
- db.js: 모든 모드 번역 로드 (minecraft 외 모드 포함)
백엔드:
- 중복 모드팩 업로드 시 409 에러 반환
- changelog UTF-8 인코딩 수정
- S3 경로에서 한글 제거 (ASCII만 사용)
프론트엔드:
- 업로드 중 로딩 인디케이터 추가
- 에러 토스트 빨간색/성공 초록색 구분
- 다이얼로그 배경 클릭 시 닫히지 않음 + 스케일 바운스 효과
- 취소 버튼 로딩 중 비활성화
- POST /api/admin/modpacks: .mrpack 파일 업로드
- adm-zip으로 modrinth.index.json 파싱
- 모드팩 이름, 버전, MC 버전, 모드 로더 자동 추출
- mods/resourcepacks/shaderpacks 콘텐츠 파싱
- S3에 파일 저장, DB에 메타데이터 저장
- 화이트리스트 조회/추가/삭제/토글 API 연동 (Mod WhitelistHandler)
- 화이트리스트 아바타 S3 캐싱 (CachedSkin 컴포넌트)
- 플레이어 아바타 S3 캐싱 연동
- 플레이어 추가 시 즉시 목록 반영
- 토스트 중앙 정렬 (모바일 대응)
- URL 해시로 탭 상태 유지
- 화이트리스트 활성화 상태 정확히 조회 (white-list 값만 체크)
- 콘솔 탭 스크롤 동작 개선 (조건부 자동 스크롤, 맨 아래로 버튼)
- 탭 전환 시 레이아웃 쉬프트 방지 (scrollbar-gutter: stable)
- 맨 아래로 버튼에 그림자 효과 추가
- Sidebar에 소켓 기반 닉네임 실시간 동기화 로직 추가
- /link/status API에서 displayName 사용하도록 수정