И так, вы все любите сапрессор, поэтому я решил подробно описать как это сделать, я буду дополнять статью со временем, т.к. сейчас пишу с телефона, так же не стесняйтесь задавать вопросы мне в дискорде(LIMPIX31#9144) или Telegram (@LIMPIX31).
Если это гайд вам помог, то пожалуйста оставьте звёздочку и комментарий, чтобы я знал, что улучшить или дополнить.
Я немного забросил тему с сапрессором и похоже, что сапрессор оффициально исправлен Mojang. 😕
Поехали.
Подготовим необходимые утилиты и ПО для работы.
- git. Идём на сайт, скачиваем и ставим себе на ПК с дефолтными галочками, если сомневаетесь можете также спросить. (Можно впринципе поставить сразу в WSL,
sudo apt install git
) - WSL, почему-то Paper можно собрать только из Linux, так что если у вас система Windows, то идём в Microsoft Store и ищем Ubuntu 20.04 или выше, ставим, запускаем. Точную инструкцию по установке не помню. Далее ставим Java 16 - 18 уже в WSL, гуглим "How to install JDK 18 in Ubuntu".
Идём на репозиторий PaperMC, жмём зелёную кнопку и копируем ссылку. Создаём папку в удобном месте и около 2 ГБ свободного места на диске. Затем выполняем команду (рекомендую из под Windows Terminal или PowerShell):
git clone ссылка-которую-скопировали .
-
Скачиваем или копируем патч отсюда
-
Засовываем этот патч в папку patches/server и меняем ей номер, чтобы он был последним (патчи пронумерованы), не знаю влияет ли это на что-то, но мне лень проверять, поправьте если что
-
Из той же папки открываем WSL и пишем туда:
./gradlew applyPatches
Теперь нужно запастись терпением, это займет от 5 до 30 минут.
Вы же не закрывали WSL? Она вам ещё раз понадобится, чтобы получить jar, который будет стоять у вас на сервере. Теперь нужно выполнить команду сборки, она отличается для разных версий, но конкретно для 1.18.2 это:
./gradlew createReobfBundlerJar
После этого вы сможете найти jar где-то в build/libs.
Все тоже что и для 1.18.2, только патч вот этот и команда сборки будет
./gradlew reobfJar
И даже вроде бы можно будет обойтись без WSL
Тут все гораздо сложнее. Вам понадобится редактор кода, предпочтительнее Intellij IDEA или просто попросить меня за вас сделать патч на эту версию :) Делаем всё тоже самое, кроме пункта с патчем(2) и клонированием репозитория
- После клонирования переключаемся на нужную версию. Для последних патч версий (тоесть 1.16.5 / 1.17.1 / 1.18.2, а не 1.18 или 1.16.2)
git checkout ver/1.17.1
Для версий типа 1.18.1 или 1.16.2
git log --oneline
Ищем конец требуемой версии и переключаемся на неё
git checkout ab8a13961
2.Применяем существующие патчи
./gradlew applyPatches
И на всякий случай скопируйте папку с патчами для сервера, чуть позже узнаете зачем.
-
Открываем патч из 1.18, если это 1.18 и 1.17 патч, если это версия <=1.17
-
Открываем редактор кода, открываем Paper-Server и вносим изменения из патча вручную, но номера строк будут отличаться, поэтому пользуемся поиском. Подробнее ознакомится с тем как устроен патч можно тут
-
Открываем cmd или wsl из папки Paper-Server (если вы устанавливали git в wsl. И фиксируем изменения, чтобы создать свой патч.
git add -A # Добавляем все изменения в будущий патч
git commit -m "UpdateSuppression-and-ItemShadowing" # Фиксируем добавленные изменения с именем будущего патча
- Открываем WSL уже из корня папки и создаём патч
./gradlew rebuildPatches
Если по какой-то причине патч не создаётся с ошибкой Index x out of bound
, и патчи из папки с патчами для сервера пропадут, то верните их обратно(мы их скопировали ранее) и добавьте пустой файл с последним номером и любым именем, типа 0123-Null.patch
и повторите попытку, лично мне это помогло.
-
Снова применяем патчи, на этот раз это будет быстрее
-
Возвращаемся к первой инструкции, к сборке jar, но команда для сборки будет та, что указана в README.md в нужной ветке, откройте репозиторий PaperMC на github, выберите ветку и промотайте до
Compiling Jar From Sources
- Желательно поделится вашим патчем в комментариях, чтобы другим людям было проще.
Для версий ниже 1.17 вы должны сделать тоже самое, но немного по другому Для начал вам нужно установить maven в WSL
sudo apt install maven
Команда применения патчей
./paper patch
Команда создания патчей
./paper rebuild
Сборка Jar
./paper jar
Добрые люди, пожалуйста, пропатчите purpur 1.16.5 у меня не работает :'(