И так, вы все любите сапрессор, поэтому я решил подробно описать как это сделать, я буду дополнять статью со временем, т.к. сейчас пишу с телефона, так же не стесняйтесь задавать вопросы мне в дискорде(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 ab8a139612.Применяем существующие патчи
./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



Недавно уже пытались создать новый механизм, но я не особо силён в английском поэтому из этого видео я понял очень мало чего, но работает он совершенно по другому - https://www.youtube.com/watch?v=81S7Q-O28X8