Удобная работа с NMS на Paper 1.17+ (paperweight)

Удобная работа с NMS на Paper 1.17+ (paperweight)

Anarchist_YT

Администратор
Сообщения
2 118
Решения
89
Веб-сайт
t.me
Dymeth добавил(а) новый ресурс:

[Туториал] Удобная работа с NMS на Paper 1.17+ (paperweight) - Удобная работа с NMS на Paper 1.17+ (paperweight)

Здравствуйте!

Сразу хочу показать вам пример кода на NMS с использованием технологии paperweight:
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Как вы можете увидеть, больше нет никаких однобуквенных названий. Весь код читабельный и выглядит так, будто это и вовсе не NMS. Тем не менее, это он - обратите внимание на импорты.

Заинтересовало? Тогда продолжаем...

Предисловие:
Использование NMS - это крайняя мера, к которой стоит прибегать только в крайнем случае. Если у какой-то функции есть апи - лучше...

Узнать больше об этом ресурсе...
 
Сделал все по этому туториалу. Загрузил через git paper и paper weight, сейчас они находятся в корневой папке юзера. При перезагрузке градла выдает следующую ошибку: You must have git installed and available on your PATH in order to use paperweight.
Я не особо шарю, что мне нужно сделать?
 
Гит установлен. Каким образом указать пути?
Вероятнее всего, Git не добавлен в переменные среды пользователя (в переменную Path). Я установку Git производил средствами Intellij IDEA, но предполагаю, что нужно проделать примерно следующее:
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Последнее редактирование:
Вероятнее всего, Git не добавлен в переменные среды пользователя (в переменную Path). Я установку Git производил средствами Intellij IDEA, но предполагаю, что нужно проделать примерно следующее:
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Вам необходимо зарегистрироваться для просмотра изображений-вложений
Не помогло. Ошибка та же. В intellij idea у меня установлен гит, так же её средствами. И ещё, я загружал файлы paperweight и paper просто в папку пользователя, не через intellij idea, так как не знаю где там использовать гит команды.
 
я загружал файлы paperweight и paper просто в папку пользователя, не через intellij idea, так как не знаю где там использовать гит команды.
Их не нужно загружать вручную. Выполнение команд git также не требуется. Все операции делаются через интерфейс Intellij IDEA.

Paperweight необходимо подключить в качестве Gradle-плагина для в проекте, после чего добавить зависимость Paper при помощи paperDevBundle. Собственно, об этом и рассказано в статье.

Если нет понимания, что такое Gradle, и как с ним работать - я рекомендую изучить информацию в других источниках, ибо иначе на обсуждение уйдёт много времени. Данная статья подразумевает, что у разработчика уже должны быть базовые навыки работы с Gradle.

Не помогло. Ошибка та же. В intellij idea у меня установлен гит, так же её средствами.
Если перезагрузка не поможет - то не знаю, в чём может быть дело.
Команда "git" из консоли работает? Должно выводить помощь по команде:
Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Их не нужно загружать вручную. Выполнение команд git также не требуется. Все операции делаются через интерфейс Intellij IDEA.

Paperweight необходимо подключить в качестве Gradle-плагина для в проекте, после чего добавить зависимость Paper при помощи paperDevBundle. Собственно, об этом и рассказано в статье.

Если нет понимания, что такое Gradle, и как с ним работать - я рекомендую изучить информацию в других источниках, ибо иначе на обсуждение уйдёт много времени. Данная статья подразумевает, что у разработчика уже должны быть базовые навыки работы с Gradle.


Если перезагрузка не поможет - то не знаю, в чём может быть дело.
Команда "git" из консоли работает? Должно выводить помощь по команде:
Вам необходимо зарегистрироваться для просмотра изображений-вложений
Гит не работает.
upd:Исправил, гит не работал в консоли intellij idea.
Объединено

Их не нужно загружать вручную. Выполнение команд git также не требуется. Все операции делаются через интерфейс Intellij IDEA.

Paperweight необходимо подключить в качестве Gradle-плагина для в проекте, после чего добавить зависимость Paper при помощи paperDevBundle. Собственно, об этом и рассказано в статье.
Теперь такая ошибка. Я не понимаю почему он не может загрузить paper api
 

Вложения

  • fiusfksefkeslk.png
    fiusfksefkeslk.png
    24.6 KB · Просмотры: 6
Последнее редактирование:
Гит не работает.
upd:Исправил, гит не работал в консоли intellij idea.
Объединено


Теперь такая ошибка. Я не понимаю почему он не может загрузить paper api
Как и предложено в ошибке, необходимо указать репозиторий, в котором находится зависимость.
Информацию об этом можно найти тут:

Но опять же, при использовании paperweight зависимость от Paper подключается не стандартными средствами, а при при помощи paperDevBundle
 
Как и предложено в ошибке, необходимо указать репозиторий, в котором находится зависимость.
Информацию об этом можно найти тут:
Спасибо, все исправил!
Объединено

Как и предложено в ошибке, необходимо указать репозиторий, в котором находится зависимость.
Информацию об этом можно найти тут:
Сори что опять пишу. Многие методы тупо не могу найти, это получается что они удалены? paper-api, paper-mojangapi, paper-server в либу добавлены. Датавочера вообще нету. В обычном спиготе 1.17 он естью Может у меня чего то не хватает?


Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Последнее редактирование:
Спасибо, все исправил!
Объединено


Сори что опять пишу. Многие методы тупо не могу найти, это получается что они удалены? paper-api, paper-mojangapi, paper-server в либу добавлены. Датавочера вообще нету. В обычном спиготе 1.17 он естью Может у меня чего то не хватает?


Вам необходимо зарегистрироваться для просмотра изображений-вложений
В маппингах Mojang совершенно другие названия классов, методов и переменных. Так, например, DataWatcher - это SynchedEntityData. А DataWatcherObject - это EntityDataAccessor. Достаточно однажды переписать всё с использованием маппингов Mojang, чтобы потом не беспокоиться об этом
 
Тема актуальна, на 1.18.2 paperweight продолжает работать.
Но не забывайте указывать актуальную версию плагина userdev
Объединено

Актуализировал версии технологий, используемых в статье. Но не забывайте периодически проверять их актуальность самостоятельно:
- JDK
- Gradle
- Плагин io.papermc.paperweight.userdev
- Плагин xyz.jpenilla.run-paper, если используете
- paperDevBundle (API Paper'а)

Сейчас это особенно актуально, потому что совсем недавно вышел Minecraft 1.19
 
Последнее редактирование:
Dymeth обновил(а) ресурс Удобная работа с NMS на Paper 1.17+ (paperweight) новой записью:

Больше информации по Maven и Groovy

Обновил пост:
- Добавил спойлер для пользователей мавен со всеми предложенными ссылками и примерами
- Добавил ссылку на тестовый плагин на Groovy DSL
- Добавил информацию о настройке paperweight на Groovy DSL
- Обновил версии зависимостей

Узнать больше об этом обновлении...
 
Dymeth обновил(а) ресурс Удобная работа с NMS на Paper 1.17+ (paperweight) новой записью:

Актуализировал всё

Обновил первый пост:
- указал актуальные версии плагинов и зависимостей
- удалил необходимость указывать репозиторий плагина paperweight
- удалил рекомендацию использовать Kotlin DSL вместо Groovy DSL
- добавил упоминание Purpur и Folia

Помимо этого, актуализировал paperweight-test-plugin-groovy:
- Обновлены версии gradle-плагинов и dev-bundle зависимостей (до 1.20)
- Обновлён Gradle до 8+ (gradle-wrapper 8.1.1)
- Добавлен плагин foojay-resolver-convention, который занимается решением...

Узнать больше об этом обновлении...
 
Начиная с 1.20.5 больше нет необходимости вызывать задачу reobfJar(), поскольку ядро работает полностью на официальных маппингах.
Помимо этого, из пакетов классов CraftBukkit была, наконец, удалена версия.

Таким образом, с некоторой вероятностью теперь плагин, написанный с paperweight под одну версию, будет работать и на других (1.20.5+). Больше не требуется создавать интерфейсы и гору реализаций под них.

Но учтите, что код игры самой может поменяться, из-за чего используемые вами методы, поля и классы могут стать недоступны.

Чуть позже по мере возможности обновлю основную статью
 
Начиная с 1.20.5 больше нет необходимости вызывать задачу reobfJar(), поскольку ядро работает полностью на официальных маппингах.
Помимо этого, из пакетов классов CraftBukkit была, наконец, удалена версия.

Таким образом, с некоторой вероятностью теперь плагин, написанный с paperweight под одну версию, будет работать и на других (1.20.5+). Больше не требуется создавать интерфейсы и гору реализаций под них.

Но учтите, что код игры самой может поменяться, из-за чего используемые вами методы, поля и классы могут стать недоступны.

Чуть позже по мере возможности обновлю основную статью
Но это новейшая версия и мало поможет отсутствие NMS версий
 
Но это новейшая версия и мало поможет отсутствие NMS версий
Никто не мешает разрабатывать плагин для 1.20.6+. Когда-то и она станет популярна.
А так да, для всех старых придется держать всё ту же гору реализаций
 
Назад
Сверху Снизу