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:
- Сначала self-host (
preferSelfHost: true, по умолчанию) — RSPM запускает собственный HTTP-сервер, проводит цепочку проверок исправности (не-LAN адрес, локальная самопроверка, проверка внешней доступности через magmaguy.com) и объявляет локальный URL клиентам. Нулевая стоимость трафика для MagmaGuy. - Резерв через удалённый авто-хост — если хоть одна проверка self-host не проходит, RSPM загружает пак на CDN MagmaGuy по адресу
magmaguy.com/rsp/и анонсирует этот URL. - Принудительный 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-пака с тем, который найдёт.
Куда идти дальше
- Настройка — рабочий процесс администратора для отдельностоящего сервера
- Прокси-сети — пошаговая настройка для BungeeCord / Waterfall / Velocity
- Самостоятельный хостинг — встроенный HTTP-сервер, разрешение портов, определение внешнего хоста
- Преобразование в Bedrock / Geyser — что преобразуется, параметры тонкой настройки
- FAQ — частые вопросы
- Устранение неполадок — что проверять, когда что-то сломано
- API — регистрация паков из вашего собственного плагина