Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Туториал Создаем кастомные патчи для Spigot

demkom

Guest
Оригинал: Клик

Подготовка:

-Maven [Как установить?]
-Git
-Java(JDK)
-BuildTools [Jenkins]

Что мы будем делать в этом уроке?
Мы модифицируем spigot/craftbukkit, чтобы добавить код с помощью патчей.
В качестве примера я добавлю метод, который отправит игроку сообщение «привет мир».

Сам метод:
Java:
helloWorld()


Введение:
Система инъекции патчей - это мощная система, которая позволяет нам легко кастомизировать spigot.
Главное её предназначение - это добавление патчей к bukkit/craftbukkit, но мы также можем использовать её и для своих целей.


Что и как:
Сначала вам нужно поместить BuildTools.jar в папку и скомпилировать его с помощью git bash
2xirOCI.png

dpxxutg.png

Это займет некоторое время, это загрузка и компиляция spigot!
Для этого он должен загрузить и декомпилировать craftbuikkit, применить патчи и перекомпилировать себя.
По окончании процесса будут созданы все нужные нам файлы и папки.

tN97fMS.png

То что нас интересует, это папка Spigot.
rbCS85T.png

Мы можем закрыть терминал и посмотреть, что для нас создал BuildTools.
В каталоге есть много других каталогов и некоторых файлов.
Нас в основном интересуют такие папки: «Bukkit-Patches», «CraftBukkit-Patches», «Spigot-API», «Spigot-Server».
Первые два каталога содержат патчи, которые были применены к spigot: первая специфицирует, что применять к bukkit api, последняя указывает те, которые добавляются к craftbukkit.
Два других каталога содержат исходный код spigot, но первый содержит только API Spigot (bukkit), а второй содержит только материал, не необходимый для api (craftbukkit и др.),
Нам нужно создать патч, но чтобы сделать процесс более простым (никто не хочет создавать файл .patch напрямую), мы изменим исходный код и разрешим Maven сделать грязную работу.
Вы можете изменить источник с помощью любого текстового редактора, но в этом уроке я буду использовать идею Intellij.
Сначала нам нужно открыть проект Maven:

k4ki6Zk.png

VsPNXcu.png

Нажмите «Далее», пока не попросит имя проекта, напишите «Spigot» или что-то подобное и завершите процесс.
Среда даст предупреждение, связанное с maven, но нам нужно только изменить код, просто игнорируем его.
Здесь идет интересная часть, пишите то, что вы хотите.
Я сделал метод helloWorld ():

9l6bH8S.png

Я мог бы упростить запись метода по умолчанию в классе Player, но это слишком просто:
GvTaLgc.png

Хорошо, после того, как все написано сохранить и выйти, нам больше не нужна IDE.
Нам нужно открыть консоль и добавить каждый файл, который мы модифицировали, «git add path\to\File.java»

im8Pxyc.png

Как только мы закончим, нам нужно написать «git commit -m <message>», где аргумент «message» указываем название коммита. Просто пишите что хотите, ниже я написал то что изменил.

2G1uXdu.png

ВНИМАНИЕ: вам нужно выполнить «git add/commit» два раза: один раз для Spigot-API, а другой для Spigot-Server
aVXEMgC.png

Примечание: сообщения могут быть разными. Но сути это не меняет.
Как только это будет сделано, нам просто нужно будет запустить «rebuildPatches.sh», и будет создан .patch файл.

dx1n5m8.png

Чтобы экспортировать проект и получить кастомный spigot.jar, нам нужно написать "mvn clean install"
Созданный .jar будет в «Spigot-Server \ target», это та папка, у которой нет оригинала.

Q7gKDvs.png

Вот наш .jar , теперь мы можем импортировать и использовать его!
7BDzQkN.png

Zk7Cbrg.png

Не забудьте заменить оригинал, пропатченым ядром в директории сервера!


Обратите внимание на:
[Фикс пакетов книги | Сборка AweSomeCraft]
​
 
Последнее редактирование модератором:
А на Paper как сделать?
Для Paper существует paperweight. Документации, к сожалению, довольно мало, но есть пример использования, да и можно всегда к ним в дискорд обратиться. Также есть небольшой шаблон для форка Airplane - с ним может быть немного удобнее (но понадобится обновление под 1.17), да и сам Airplane весьма приятное дополнение для Paper.
 

Поделиться этой страницей

Назад
Верх