BuzzBuild-NpcDialog — 개요
BuzzBuild-NpcDialog는 Paper 서버에서 대화를 판정하고 Fabric 클라이언트에 이름표·대사·선택지를 표시하는 대화 시스템입니다. 운영자는 YAML로 대화를 작성하고, 기능 담당자는 서버 API로 교환·상점·던전 메뉴를 연결합니다.
핵심 기능
섹션 제목: “핵심 기능”- 한국어 폰트와 타이핑 효과를 사용하는 대화창.
- 긴 대사의 줄바꿈·내부 페이지, 한 번에 최대 3개씩 표시하는 선택지.
- 페이지 이동, 다른 대화로 이동, 조건별 선택지와 자동 분기.
- 반복 대화와 플레이어별 1회 완료 기록.
- Citizens·MythicMobs 바인딩과 실제 NPC 엔티티를 전달하는 API.
- 서버의 거리·조건 재검사, 텔레포트·사망·접속 종료·NPC 소멸에 따른 취소.
- 일회용 요청 토큰으로 동일 선택 요청의 중복 실행 차단.
- 다른 기능의 조건·액션 콜백 연결. 가격·거래·입장·보상 처리는 각 담당 기능의 책임입니다.
NPC 생성·위치 배치, 교환 목록, 상점 가격, 던전 보상은 제공하지 않습니다.
지원 환경
섹션 제목: “지원 환경”다음은 현재 소스의 고정 버전입니다. 다른 버전의 호환성을 보장하는 목록은 아닙니다.
| 항목 | 소스에서 확인한 값 |
|---|---|
| 플러그인·모드 버전 | 0.1.0 |
| Minecraft | 26.1.2 |
| Java | 25 |
| 서버 | Paper, 컴파일 API 26.1.2.build.69-stable |
| 서버 메타데이터 | api-version: '26.1.2' |
| 클라이언트 | Fabric, environment: client |
| Fabric Loader | 0.19.3 |
| Fabric API | 0.155.2+26.1.2 |
| 개발 빌드 | Gradle 9.5.0, Fabric Loom 1.17.8 |
Paper JAR과 Fabric JAR은 역할이 다릅니다. 현재 대화 UI는 Fabric 모드가 필요하며 바닐라 클라이언트용 UI 대체 구현은 없습니다.
의존성
섹션 제목: “의존성”| 대상 | 필수 | 선택 |
|---|---|---|
| Paper 서버 | BuzzBuild-Framework | Citizens, MythicMobs |
| Fabric 클라이언트 | Fabric Loader, Fabric API, BuzzBuild-Framework Fabric 모드 | 별도 선택 의존성 등록 없음 |
| 다른 기능 연결 | 해당 기능의 서버 플러그인과 등록된 조건·액션 또는 실행 가능한 명령 | NPC 직접 연결 API |
Paper는 Framework를 depend, Citizens·MythicMobs를 softdepend로 선언합니다. Fabric 메타데이터에도 Framework 의존성이 있으며, 실제 코드가 Framework 메시징 버스를 사용합니다. Paper/Fabric은 같은 요청 토큰 프로토콜의 배포본을 사용해야 합니다.
문서 안내
섹션 제목: “문서 안내”- 설치: 서버·클라이언트 설치와 적용 절차.
- 명령어·권한: 관리자 명령과 NPC 이용 권한.
- 설정: YAML 키·기본값·조건·액션.
- 사용법: 대화 작성, NPC 및 기능 연결.
- 문제 해결: 로드 실패, 조건과 미지원 기능.
확인 범위
섹션 제목: “확인 범위”2026-10-05 현재 작업 트리의 Gradle·메타데이터·실행 코드를 확인했습니다. 이전 작업에서 전체 Gradle 빌드와 서버 단위 테스트 23개가 통과했습니다.
로컬 시연에서 Paper 26.1.2 build 74와 Fabric 클라이언트 사이의 대화 전송·한국어 표시·타이핑 종료·1280×720/GUI 배율 2의 배치·스크롤 선택 변경을 확인했습니다. 모든 환경에서의 검증을 뜻하지 않습니다. 직접 클릭·모든 해상도·사운드·키 재설정·상태 효과 복구·실제 Citizens/MythicMobs 상호작용·교환/상점/던전 거래의 게임 내 동작은 미검증입니다.