1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем demkom, 23 апр 2017.

  1. Автор темы
    demkom

    demkom Guest

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

    Подготовка:

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

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

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

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


    Что и как:
    Сначала вам нужно поместить BuildTools.jar в папку и скомпилировать его с помощью git bash
    [​IMG]
    [​IMG]
    Это займет некоторое время, это загрузка и компиляция spigot!
    Для этого он должен загрузить и декомпилировать craftbuikkit, применить патчи и перекомпилировать себя.
    По окончании процесса будут созданы все нужные нам файлы и папки.

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

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

    [​IMG]
    Я мог бы упростить запись метода по умолчанию в классе Player, но это слишком просто:
    [​IMG]
    Хорошо, после того, как все написано сохранить и выйти, нам больше не нужна IDE.
    Нам нужно открыть консоль и добавить каждый файл, который мы модифицировали, «git add path\to\File.java»

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

    [​IMG]
    ВНИМАНИЕ: вам нужно выполнить «git add/commit» два раза: один раз для Spigot-API, а другой для Spigot-Server
    [​IMG]
    Примечание: сообщения могут быть разными. Но сути это не меняет.
    Как только это будет сделано, нам просто нужно будет запустить «rebuildPatches.sh», и будет создан .patch файл.

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

    [​IMG]
    Вот наш .jar , теперь мы можем импортировать и использовать его!
    [​IMG]
    [​IMG]
    Не забудьте заменить оригинал, пропатченым ядром в директории сервера!


    Обратите внимание на:
    [Фикс пакетов книги | Сборка AweSomeCraft]
     
    Последнее редактирование модератором: 8 май 2017
  2. xBrainRTPx

    xBrainRTPx Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Brat987
    Спасибо!
     
  3. TheFatCat

    TheFatCat Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    TheFaatCat
    Классный тутор. Спасибо :)
     
  4. teralph

    teralph Ньюби

    Баллы:
    1
    Имя в Minecraft:
    teralph
    Большое спасибо!
     
  5. GladCypress3030

    GladCypress3030 Активный участник

    Баллы:
    61
    А на Paper как сделать?
     
  6. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Для Paper существует paperweight. Документации, к сожалению, довольно мало, но есть пример использования, да и можно всегда к ним в дискорд обратиться. Также есть небольшой шаблон для форка Airplane - с ним может быть немного удобнее (но понадобится обновление под 1.17), да и сам Airplane весьма приятное дополнение для Paper.
     

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