Иконка ресурса

Руководство Пишем NMS плагины на Paper 1.17

Поддерживаемые версии
  1. 1.17
Привет! Как вы знаете, md5 отказался от спиготовских маппингов, и теперь в рантайме код выглядит как алфавит. Разрабатывать плагины под нмс как раньше уже не получится: читаемых имен нету вовсе.
В этом туториале я расскажу, как можно решить эту проблему и воспользоваться маппингами от mojang, что, естественно, упростит и сделает разработку приятней.

ВАЖНО Инструкция работает только на 1.17 и gradle! Если у вас maven, можете использовать special-source (spigot only), гайд к нему есть на spigotmc.org.
Также, перед началом, убедитесь, что у вас установлен git.

Итак, давайте начнем.

Подготовка и установка необходимых плагинов.

Первым делом надо установить в локальный репозиторий плагины paperweight.
paperweight - система сборки Paper'а. Она таки и позволит нам использовать официальные маппинги во время разработки, а во время компиляции дружелюбно превратит nms-код в алфавит.
Для этого, открываем консоль и пишем
Код:
git clone -b userdev https://github.com/PaperMC/paperweight.git
После этого, заходим в папку paperweight и устанавливаем плагины в локальный репозиторий.
Код:
gradle publishToMavenLocal
Бац! Paperweight установлен.

Теперь нам надо клонировать Paper, применить патчи и выполнить волшебную команду :)
Код:
git clone -b userdev https://github.com/PaperMC/Paper.git
Применяем патчи:
Код:
gradle applyPatches //Закройте все приложения, жрет много оперативки!
и произносим заклинание:
Код:
gradle publishDevBundlePublicationToMavenLocal -PpublishDevBundle // Тоже очень ресурсозатратно!
Вуаля! Мы готовы к разработке с paperweight.

Использование

Самое сложное позади! Осталось лишь подключить плагин paperweight-userdev к вашему проекту.
Для этого, в settings.gradle.kts (если у вас kotlin dsl)
Вводим это:
Код:
pluginManagement {
  repositories {
    mavenLocal()
    gradlePluginPortal()
    maven("https://papermc.io/repo/repository/maven-public/")
  }
} // Добавляем в репозитории плагинов наш локальный
И, в build.gradle.kts добавляем плагин paperweight-userdev:
Код:
plugins {
  `java-library`
  id("io.papermc.paperweight.userdev") version "1.1.10-LOCAL-SNAPSHOT" // Тот самый
}
И, наконец, в dependencies, добавляем paperDevBundle:

Код:
dependencies {
  paperDevBundle("1.17.1-R0.1-SNAPSHOT")
}
Готово! Теперь вы можете спокойно писать плагины с нмс под paper.
Надеюсь, гайд был полезным. Извините за тавтологию, если такая присутствует.
Хочу передать огромное спасибо ребятам из PaperMC, Что сами подсказали мне что да как сделать. Без них, этот гайд бы и не существовал. =)
Автор
manya
Просмотры
2 605
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Поделиться ресурсом

Назад
Сверху Снизу