Minecraft 플러그인 ViaVersion

ViaVersion와 확인된 서버에 대한 정보

🔌 ViaVersion 소개

ViaVersion은 서로 다른 Minecraft 클라이언트 버전을 사용하는 플레이어가 하나의 서버에 접속할 수 있도록 클라이언트/서버 프로토콜 변환을 제공하는 Minecraft 플러그인입니다. 클라이언트와 서버 프로토콜 버전 사이의 네트워크 패킷을 변환하여 다중 버전 호환성을 제공합니다.

🎯 목적

ViaVersion은 클라이언트 버전 파편화 문제를 해결합니다. 서버가 특정 Minecraft 릴리스로 실행되는 경우, 일반적으로 더 최신이거나 더 오래된 클라이언트를 사용하는 플레이어는 접속할 수 없습니다. ViaVersion은 프로토콜을 변환해 운영자가 원하는 서버 버전을 유지하면서 더 넓은 범위의 클라이언트 버전이 접속할 수 있도록 합니다.

⚙️ 기능

  • 필요에 따라 플랫폼 플러그인(Paper/Spigot/CraftBukkit) 또는 프록시 플랫폼(Velocity)에서 동작합니다.
  • 네트워크 프로토콜을 변환해 최신 클라이언트가 오래된 서버에 접속할 수 있게 하고, 그 반대도 가능하게 합니다(호환 범위는 설치된 ViaVersion 빌드와 선택적 애드온에 따라 다릅니다).
  • 추가 지원을 확장하는 선택적 보조 프로젝트/애드온으로 ViaBackwards와 ViaRewind가 있습니다.
  • 동작을 조정하고 악용 시도를 완화할 수 있도록 구성 옵션과 패킷 제한 기능을 제공합니다.
  • 문제 해결을 위해 런타임 정보를 수집하는 진단 명령과 dump 명령을 제공합니다.

🧩 대상

  • 서버를 바로 업그레이드하지 않고 여러 Java Edition 클라이언트 버전을 지원하고 싶은 서버 소유자.
  • 프록시(예: Velocity)를 사용하는 네트워크 운영자이면서 백엔드 서버 간 크로스 버전 연결이 필요한 경우.
  • 프로토콜 변환 계층이나 ViaVersion API 접근이 필요한 플러그인 개발자와 통합 담당자.

🏗️ 사용 예시

  • Survival/PvP 서버가 안정적인 Paper 빌드를 유지하면서 최신 클라이언트를 사용하는 플레이어의 접속을 허용합니다.
  • 프록시 네트워크가 프록시 또는 백엔드 서버에서 ViaVersion을 사용해 서로 다른 클라이언트 버전의 플레이어가 네트워크에 접속할 수 있습니다.
  • 개발자가 ViaVersion API 아티팩트를 사용해 프로토콜 변환을 커스텀 플랫폼 구현에 통합합니다.

⌨️ 명령어

CommandDescriptionPermissionAccess
/viaversion플러그인 버전과 사용 가능한 명령어를 표시합니다.viaversion.admin관리자
/viaversion autoteamautoteam을 전환합니다(1.8 충돌 기능).viaversion.admin관리자
/viaversion debug디버그 모드를 활성화합니다(문제 해결용).viaversion.admin관리자
/viaversion displayleaksNetty ResourceLeakDetector를 활성화합니다(진단용).viaversion.admin관리자
/viaversion dontbugme로그인/콘솔에서 업데이트 알림 메시지를 전환합니다.viaversion.admin관리자
/viaversion dump지원팀에 도움이 되는 진단 dump를 생성합니다.viaversion.admin관리자

🔐 권한

PermissionDescriptionDefault
viaversion.adminViaVersion의 관리 명령어와 진단 기능에 대한 접근 권한을 부여합니다.op
viaversion.command.<subcommand>(새 버전에서 사용) 개별 ViaVersion 하위 명령어에 대한 접근 권한을 부여합니다.지정되지 않음

⚙️ 설치

📥 설정

  • 사용 중인 플랫폼에 맞는 공식 ViaVersion 플러그인 jar를 다운로드하여 서버 또는 프록시의 plugins/ 디렉터리에 넣습니다.
  • 서버를 시작한 다음 콘솔을 확인하여 플러그인이 정상적으로 로드되었는지 확인합니다.
  • 프록시(예: Velocity)를 사용하는 경우 원하는 변환 지점에 따라 프록시 또는 백엔드 서버 중 한 곳에 ViaVersion을 설치하면 됩니다(반드시 둘 다일 필요는 없습니다).

📦 종속성

  • 핵심 동작에 필수인 외부 플러그인 종속성은 없습니다. 선택적 보조 프로젝트(ViaBackwards, ViaRewind)는 버전 지원을 확장하며 별도로 배포됩니다.

🧾 설정

  • ViaVersion은 패킷 제한, 디버깅 및 기타 동작을 조정할 수 있는 구성 옵션을 제공합니다(공식 문서에서는 config.yml로 안내됨).

🧠 기술 참고

  • 확인된 서버 플랫폼: Paper(및 CraftBukkit/Spigot 호환 서버)와 Velocity이며, Fabric, Forge, Bungee, Sponge용 통합 프로젝트도 있습니다.
  • 공식 빌드에는 Java 17 이상이 필요합니다.
  • 호환 범위는 빌드에 따라 다르며, ViaBackwards와 ViaRewind를 사용하면 오래된 클라이언트 버전 지원을 확장할 수 있습니다.
  • 이 프로젝트는 개발자용 API 아티팩트를 제공하며 Hangar, Modrinth(모드용), GitHub에 릴리스를 게시합니다.

🤝 이 플러그인이 유용한 경우

서버를 즉시 업그레이드하지 않고 서로 다른 Minecraft Java 클라이언트 버전의 플레이어가 하나의 서버나 네트워크에 접속할 수 있게 해야 한다면, ViaVersion은 유지 관리되는 프로토콜 변환 계층과 관련 도구를 제공하며, 개발자를 위한 진단 기능과 확장 지점도 함께 제공합니다.

ViaVersion 플러그인 서버

플러그인 ViaVersion 페이지에는 모니터링에서 이 플러그인을 확인한 서버, 사용 중인 플랫폼과 버전이 표시됩니다.

플러그인은 명령어, 경제, 보호, 접근 권한, 미니게임, 연동 및 기타 메커니즘을 추가할 수 있습니다. ViaVersion의 실제 역할은 서버별 설정에 따라 다릅니다.

데이터는 서버의 기술 응답에서 자동으로 생성됩니다. 서버가 플러그인 목록을 비공개로 설정한 경우, ViaVersion을 사용하더라도 이 섹션에 표시되지 않을 수 있습니다.

ViaVersion을 사용하는 서버 목록을 통해 프로젝트를 비교하거나, 지원 버전을 확인하거나, 공개 서버에서의 플러그인 사용 사례를 찾을 수 있습니다.