Перейти к основному содержимому

ResourcePackManager (RSPM)

ResourcePackManager обнаруживает, объединяет, размещает и распространяет ресурс-паки от поддерживаемых плагинов и от вручную добавленных паков. Он также может преобразовать собранный Java-пак в ресурс-пак Bedrock, чтобы игроки GeyserMC видели то же пользовательское содержимое, что и игроки Java, и поставляется с первоклассной поддержкой прокси-сетей BungeeCord, Waterfall и Velocity.

Что он делает

  • обнаруживает паки поддерживаемых плагинов и объединяет их в соответствии с priorityOrder
  • запускает собственный встроенный HTTP-сервер, чтобы самостоятельно хостить собранный пак (внешний файловый хост не требуется)
  • может откатиться на бесплатный хостинг MagmaGuy (авто-хост), когда self-host невозможен
  • может принудительно или по желанию запрашивать использование пака
  • следит за изменениями паков и автоматически пересобирает, когда источники стабилизируются
  • преобразует собранный Java-пак в ресурс-пак Bedrock для GeyserMC
  • работает в прокси-сетях: каждый бэкенд производит свой Bedrock-пак, прокси-плагин их забирает, объединяет и раздаёт результат через Geyser

Архитектура в двух словах

RSPM v2 разделён на несколько модулей:

  • Серверный плагин (ResourcePackManager.jar) — запускается на каждом Paper/Spigot-бэкенде. Микширует Java-паки, запускает Bedrock-конвертер, хостит пак, открывает небольшой HTTP-сервер и отправляет паки Java-клиентам.
  • Прокси-плагинResourcePackManager-Velocity.jar (для Velocity) или ResourcePackManager-BungeeCord.jar (для BungeeCord / Waterfall). Забирает Bedrock-пак и маппинги каждого бэкенда, объединяет их в единый общесетевой пак и раздаёт Bedrock-клиентам через Geyser прокси. Серверный плагин извлекает оба прокси-jar в plugins/ResourcePackManager/proxy-extension/ при каждой загрузке, поэтому они всегда там и готовы к копированию.

Отдельностоящему серверу нужен только серверный плагин. Прокси-сети нужен серверный плагин на каждом бэкенде И подходящий прокси-jar на прокси.

Варианты хостинга

Три пути доставки, выбираются автоматически в таком порядке, когда autoHost: true:

  1. Сначала self-host (preferSelfHost: true, по умолчанию) — RSPM запускает собственный HTTP-сервер, проводит цепочку проверок исправности (не-LAN адрес, локальная самопроверка, проверка внешней доступности через magmaguy.com) и объявляет локальный URL клиентам. Нулевая стоимость трафика для MagmaGuy.
  2. Резерв через удалённый авто-хост — если хоть одна проверка self-host не проходит, RSPM загружает пак на CDN MagmaGuy по адресу magmaguy.com/rsp/ и анонсирует этот URL.
  3. Принудительный self-host (selfHostForce: true) — пропускает обе проверки и удалённую загрузку полностью. В основном для тестирования.

Если autoHost: false, RSPM записывает собранный zip в plugins/ResourcePackManager/output/ и вы берёте его оттуда.

См. Самостоятельный хостинг для полного дерева решений по доставке, разрешения портов и определения внешнего хоста.

Преобразование Java в Bedrock

Bedrock-конвертер больше не ограничен только FreeMinecraftModels. Он обходит каждый файл определений предметов 1.21.4+ (assets/<namespace>/items/*.json) в собранном паке и производит Bedrock-геометрию, attachables и иконки инвентаря для того плагина, который их предоставил:

  • Игроки Bedrock видят 3D-предметы, кастомную броню и моделируемое снаряжение для любого плагина, чей пак использует формат определений предметов 1.21.4+.
  • Кастомные текстуры брони рендерятся у игроков Bedrock с использованием ванильной геометрии брони и Java-текстуры в качестве видимого слоя.
  • Иконки инвентаря для 3D-предметов программно рендерятся из Java-модели через трансформацию display.gui.
  • Bedrock-пак раздаётся вживую посессионно через API Geyser, поэтому правки текстур и моделей доходят до следующего подключающегося Bedrock-игрока без перезапуска сервера. Маппинги кастомных предметов по-прежнему требуют перезапуска, так как Geyser регистрирует их при старте.
  • Двенадцать пользовательских параметров для смещений отображения предмета в руке (шесть для первого лица, шесть для третьего) в bedrock_display_offsets.yml.

Текущие интеграции

ResourcePackManager поставляется с готовыми записями интеграции для этих плагинов:

  • BackpackPlus
  • BetterHUD
  • BetterStructures
  • CannonRTP
  • EliteMobs
  • EternalTD
  • FreeMinecraftModels
  • InfiniteVehicles
  • ItemsAdder
  • MegaBlockSurvivors
  • MMOInventory
  • ModelEngine
  • Nexo
  • Nova
  • Oraxen
  • RealisticSurvival
  • ResurrectionChest
  • ValhallaMMO
  • vane-core

Каждая интеграция активируется только если плагин установлен и его настроенный локальный путь или удалённый URL пригодны для использования. Плагин также определяет Geyser-Spigot / Geyser-Velocity / Geyser-BungeeCord при запуске и связывает доставку Bedrock-пака с тем, который найдёт.

Куда идти дальше