Skip to content

Instantly share code, notes, and snippets.

@LIMPIX31
Last active June 3, 2024 12:49
Show Gist options
  • Save LIMPIX31/2dd7f6bc7cb79fc70f19033e41e07877 to your computer and use it in GitHub Desktop.
Save LIMPIX31/2dd7f6bc7cb79fc70f19033e41e07877 to your computer and use it in GitHub Desktop.
Гайд по сапрессору на Paper

И так, вы все любите сапрессор, поэтому я решил подробно описать как это сделать, я буду дополнять статью со временем, т.к. сейчас пишу с телефона, так же не стесняйтесь задавать вопросы мне в дискорде(LIMPIX31#9144) или Telegram (@LIMPIX31).

Если это гайд вам помог, то пожалуйста оставьте звёздочку и комментарий, чтобы я знал, что улучшить или дополнить.

1.19 (fixed)

Я немного забросил тему с сапрессором и похоже, что сапрессор оффициально исправлен Mojang. 😕

Сборка из патча (1.18.2 или другая версия)

Поехали.

0. Утилиты

Подготовим необходимые утилиты и ПО для работы.

  1. git. Идём на сайт, скачиваем и ставим себе на ПК с дефолтными галочками, если сомневаетесь можете также спросить. (Можно впринципе поставить сразу в WSL, sudo apt install git)
  2. WSL, почему-то Paper можно собрать только из Linux, так что если у вас система Windows, то идём в Microsoft Store и ищем Ubuntu 20.04 или выше, ставим, запускаем. Точную инструкцию по установке не помню. Далее ставим Java 16 - 18 уже в WSL, гуглим "How to install JDK 18 in Ubuntu".

1. Настраиваем локальное окружение

Идём на репозиторий PaperMC, жмём зелёную кнопку изображение и копируем ссылку. Создаём папку в удобном месте и около 2 ГБ свободного места на диске. Затем выполняем команду (рекомендую из под Windows Terminal или PowerShell):

git clone ссылка-которую-скопировали .

2. Ставим патч

  1. Скачиваем или копируем патч отсюда

  2. Засовываем этот патч в папку patches/server и меняем ей номер, чтобы он был последним (патчи пронумерованы), не знаю влияет ли это на что-то, но мне лень проверять, поправьте если что

  3. Из той же папки открываем WSL и пишем туда:

./gradlew applyPatches

Теперь нужно запастись терпением, это займет от 5 до 30 минут.

3. Собираем JAR

Вы же не закрывали WSL? Она вам ещё раз понадобится, чтобы получить jar, который будет стоять у вас на сервере. Теперь нужно выполнить команду сборки, она отличается для разных версий, но конкретно для 1.18.2 это:

./gradlew createReobfBundlerJar

После этого вы сможете найти jar где-то в build/libs.

1.17.1

Все тоже что и для 1.18.2, только патч вот этот и команда сборки будет

./gradlew reobfJar

И даже вроде бы можно будет обойтись без WSL

Другая версия (1.17 - Latest)

Тут все гораздо сложнее. Вам понадобится редактор кода, предпочтительнее Intellij IDEA или просто попросить меня за вас сделать патч на эту версию :) Делаем всё тоже самое, кроме пункта с патчем(2) и клонированием репозитория

  1. После клонирования переключаемся на нужную версию. Для последних патч версий (тоесть 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. Открываем патч из 1.18, если это 1.18 и 1.17 патч, если это версия <=1.17

  2. Открываем редактор кода, открываем Paper-Server и вносим изменения из патча вручную, но номера строк будут отличаться, поэтому пользуемся поиском. Подробнее ознакомится с тем как устроен патч можно тут

  3. Открываем cmd или wsl из папки Paper-Server (если вы устанавливали git в wsl. И фиксируем изменения, чтобы создать свой патч.

git add -A # Добавляем все изменения в будущий патч
git commit -m "UpdateSuppression-and-ItemShadowing" # Фиксируем добавленные изменения с именем будущего патча
  1. Открываем WSL уже из корня папки и создаём патч
./gradlew rebuildPatches

Если по какой-то причине патч не создаётся с ошибкой Index x out of bound, и патчи из папки с патчами для сервера пропадут, то верните их обратно(мы их скопировали ранее) и добавьте пустой файл с последним номером и любым именем, типа 0123-Null.patch и повторите попытку, лично мне это помогло.

  1. Снова применяем патчи, на этот раз это будет быстрее

  2. Возвращаемся к первой инструкции, к сборке jar, но команда для сборки будет та, что указана в README.md в нужной ветке, откройте репозиторий PaperMC на github, выберите ветку и промотайте до Compiling Jar From Sources

изображение

  1. Желательно поделится вашим патчем в комментариях, чтобы другим людям было проще.

Другая версия (< 1.17)

Для версий ниже 1.17 вы должны сделать тоже самое, но немного по другому Для начал вам нужно установить maven в WSL

sudo apt install maven

Вместо команд выше:

Команда применения патчей

./paper patch

Команда создания патчей

./paper rebuild

Сборка Jar

./paper jar
@XTITAX
Copy link

XTITAX commented Jun 3, 2024

я не могу собрать патч уже второй день стараюсь но не могу применить патчи

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment