
ResourcePackNoUpload
Плагин ResourcePackNoUpload позволяет раздавать ресурспаки игрокам без внешнего хостинга. Просто, надёжно и без лишних заморочек.
ResourcePackNoUpload - раздача ресурспаков без хостинга
Когда у тебя свой сервер Майнкрафт, рано или поздно встаёт вопрос: как раздать игрокам ресурспак? Обычные методы - залить на Google Диск, Dropbox или какой-нибудь хостинг. Но это геморрой: ссылки горят, трафик кончается, а если ресурспак весит под сотню мегабайт - ещё и качается вечно. ResourcePackNoUpload (сокращённо RNU) решает эту проблему.
Что это и зачем нужно
RNU - это плагин (и мод) для Minecraft, который позволяет серверу самому отдавать ресурспак игрокам. Никаких сторонних сервисов, никаких загрузок на сторонние сайты. Ты просто указываешь, где лежит твой ресурспак - хоть в папке, хоть в ZIP-архиве - и RNU сам раздаёт его всем, кто подключается. Игроки получают текстурпак напрямую с твоего сервера, как обычный файл.
Это особенно удобно для:
- Приватных серверов, где не хочется светить ссылки.
- Больших ресурспаков, которые не влезают в бесплатные хостинги.
- Серверов на Pterodactyl, где внешний хостинг подключить сложно.
- Тех, кто хочет иметь полный контроль над тем, что и как отдаётся.
Как это работает
Всё строится на двух конфигах: server.yml и config.yml. Первый отвечает за порт и адрес, второй - за то, откуда брать ресурспак и как его обрабатывать.
Настройка порта
В server.yml ты указываешь порт, который будет слушать плагин:
port: 25008
Этот порт должен быть открыт для игроков. Если не знаешь, какой выбрать - бери любой свободный, но не конфликтующий с портом самого сервера (обычно 25565).
Также можно задать publicLinkRoot - это полный URL, который получит игрок. Если у тебя Pterodactyl - это поле обязательно, иначе игроки не смогут подключиться.
Загрузка ресурспака
Тут есть несколько вариантов, и каждый подходит под свою ситуацию.
ReadFolder - простая загрузка из папки
Если твой ресурспак лежит в виде распакованной папки с файлами, просто укажи путь: type: ReadFolder
folder: "rnu resource pack/Cool Folder/"
Главное, чтобы внутри была та же структура, что и у обычного ресурспака: pack.mcmeta, assets/minecraft... и всё такое.
ReadZip - загрузка из ZIP-архива
Если у тебя готовый ZIP-файл с текстурпаком - тоже окей: type: ReadZip
zip: "rnu resource pack/Cool Resource Pack.zip"
Плагин сам его распакует и раздаст игрокам.
Download - скачивает с HTTP-ссылкой и заголовками
Звучит странно для плагина, который "не требует загрузки на хостинг", но бывают случаи. Например, ресурспак лежит на Google Drive с приватным доступом. Обычный Minecraft не умеет скачивать с авторизацией, а RNU - умеет, через заголовки: type: Download
cacheName: drive_private_pack
url: https://www.googleapis.com/drive/v3/files/FILE_ID?alt=media
headers:
- key: "Authorization"
value: "Bearer drive_api3213xih32i9DASKxE83hd9203f1930c0ll-d1v3-t0k3n2389"
Плюс можно включить кеширование, чтобы не скачивать одно и то же каждый раз.
WithMovedFiles - перенос файлов из одного загрузчика в другой
Допустим, ты скачал ресурспак из GitHub, но внутри ZIP-архива он лежит во вложенной папке. RNU может перенести файлы в корень: type: WithMovedFiles
folder: "?/"
destination: ""
loader:
type: Download
url: https://api.github.com/repos/Robsutar/super-cool-pack/zipball
headers:
- key: "Authorization"
value: "Bearer github_pat_uS78ih32i9DASKxE83hd9203f1930c0ll-g1t-t0k3n2389"
Полезно, если не знаешь, как называется вложенная папка.
WithDeletedFiles - удаление лишних файлов из другого загрузчика
Надо убрать из ресурспака все `README.md` и прочие текстовки? Легко: type: WithDeletedFiles
toDelete: "**.md"
loader:
type: ReadFolder
folder: "rnu resource pack/Cool Folder/"
Или можно удалить целую папку:
toDelete: "assets/all_inside_me_will_be_deleted/**/*"
Merged - объединение нескольких ресурспаков
А вот это уже интересно. Можно взять несколько загрузчиков и склеить их в один общий ресурспак. Первый в списке имеет приоритет - его файлы перезаписывают остальные: type: Merged
mergedJsonLists:
- files: "assets/minecraft/models/item/**.json"
orderBy: "predicate.custom_model_data"
loaders:
- type: ReadFolder
folder: "rnu resource pack/Cool Folder/"
- type: ReadZip
zip: "plugins/ModelEngine/resource pack.zip"
Особенно полезно, если хочешь совместить свой ресурспак с чужим, не перезаписывая файлы вручную. А mergedJsonLists автоматически сортирует кастомные модели по числовому полю - чтобы всё работало как надо.
Автоматическая перезагрузка
Если у тебя плагин (не мод), можно настроить авторелоад при определённых событиях. Например, при перезагрузке ModelEngine:
invokers:
- eventClass: "com.ticxo.modelengine.api.events.ModelRegistrationEvent"
delay: 10
repeatCooldown: 10
Это значит, что RNU сам перечитает ресурспак после того, как ModelEngine обновится. Задержка 10 тиков - чтобы дождаться завершения, а repeatCooldown не даст перезагружаться слишком часто.
Разные способы отправки игрокам
По умолчанию RNU использует Delayed отправитель - он работает почти всегда. Но если хочется заморочиться, есть варианты:
PaperPropertyInjector - экспериментальный
На серверах Paper можно внедриться прямо в системные свойства сервера, чтобы он сам раздавал ресурспак:sender:
type: PaperPropertyInjector
Экспериментально, но если заработает - удобно.
NoSenderFixedLink - если не хочешь автоматической отправки
Может, тебе нужно, чтобы ссылка была фиксированной, а игроки сами скачивали через неё? Тогда:sender:
type: NoSenderFixedLink
route: "pack"
Ссылка будет вида http://192.0.2.1:25008/pack.zip. Можно указать в server.properties как resource-pack=... и всё.
Дополнительные настройки
В config.yml есть ещё куча параметров: сообщения игрокам, поведение при ошибках, таймауты и прочее. Плагин сам сгенерирует этот файл при первом запуске, так что потеряться сложно.
Итог
ResourcePackNoUpload - вещь, которая выручает, когда нужно раздавать большие ресурспаки на сервере без внешнего хостинга. Особенно если у тебя Pterodactyl или ты используешь Google Drive с авторизацией. Настройка не самая тривиальная, но один раз разобрался - и забыл. Плюс возможность склеивать несколько ресурспаков в один - это вообще киллер-фича. Скачайте ResourcePackNoUpload и настройте раздачу текстурпаков на своём сервере Minecraft без лишней головной боли.
Сервер для плагина ResourcePackNoUpload - как у профи
Плагин ResourcePackNoUpload создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином ResourcePackNoUpload для друзей можно за пару минут - BungeeHost всё уже подготовил.
