Вы можете использовать этот шаблон для простой разработки собственных высококачественных плагинов Spigot с помощью Gradle.
Посмотрите шаблон minecraft-server, чтобы быстро запустить сеть Minecraft менее чем за 30 секунд.
Шаблон или лучший шаблон включает в себя множество функций, которые будут полезны, если вы хотите разрабатывать высококачественные плагины. Однако вам не обязательно использовать их все, вы можете просто удалить ненужные функции.
plugin.yaml
на основе свойств проекта с помощью SpiGradle.больше нет необходимости в самостоятельном хостинге Nexus или артефактном сервере
group
: идентификатор вашей-maven-группы (например: io.github.silthus)pluginName
: Ваше имя плагинаauthor
: Ваше Имяroot.projectName
внутри settings.gradle . Это будет ваш artifactId
.CHANGELOG.md
. Он будет создан при первом выпуске.README
, чтобы он указывал на ваш проект и идентификатор ресурса Spigot.prepareSpigotPlugins
, она попытается загрузить все зависимости плагинов и поместить их в debug/spigot/plugins/
.debugPaper
. Сервер запустится в фоновом режиме, и вы сможете подключиться к нему, используя адрес localhost:25565
.Пожалуйста, прочтите Руководство по участию, прежде чем отправлять какие-либо запросы на включение или открывать проблемы.
ПРИМЕЧАНИЕ
Возможно, вам придется запустить задачуgradle clean
после переименования пакетов и повторно импортировать проект gradle, чтобы устранить ошибки при созданииplugin.yml
.
Одним из основных преимуществ этого шаблона является тот факт, что он автоматически выпускает новую версию при каждом переходе к master
на основе ваших сообщений о фиксации. Это гарантирует, что ваш плагин будет выпущен в соответствии с правилами семантического управления версиями. Чтобы это работало, необходимо соблюдать несколько простых правил:
Дополнительную информацию и примеры по этой теме можно найти на домашней странице обычных коммитов. Но вот краткое резюме, которое поможет вам начать.
Спецификация «Обычные фиксации» — это упрощенное соглашение поверх сообщений о фиксации. Он предоставляет простой набор правил для создания явной истории коммитов; что упрощает написание автоматизированных инструментов поверх него. Это соглашение согласуется с SemVer, описывая функции, исправления и критические изменения, внесенные в сообщения о фиксации.
Сообщение о фиксации должно быть структурировано следующим образом:
[optional scope]:
[optional body]
[optional footer(s)]
Коммит содержит следующие структурные элементы, позволяющие сообщить о намерении потребителям вашей библиотеки или плагина:
fix:
фиксация типа fix исправляет ошибку в вашей кодовой базе (это коррелирует с PATCH в семантическом управлении версиями).feat:
коммит типа feat вводит новую функцию в кодовую базу (это коррелирует с MINOR в семантическом управлении версиями).BREAKING CHANGE:
фиксация, имеющая нижний колонтитул BREAKING CHANGE: или добавляющая ! после типа/области вводит критическое изменение API (коррелирующее с MAJOR в семантическом управлении версиями). СЕРЬЕЗНОЕ ИЗМЕНЕНИЕ может быть частью коммита любого типа.build:
, chore:
, ci:
, docs:
, style:
, refactor:
, perf:
, test:
и другие.BREAKING CHANGE:
могут быть предоставлены и следовать соглашению, аналогичному формату трейлера git. Дополнительные типы не предусмотрены спецификацией обычных коммитов и не оказывают неявного влияния на семантическое управление версиями (если только они не включают ВРЕМЯ ИЗМЕНЕНИЯ). Типу коммита может быть предоставлена область действия для предоставления дополнительной контекстной информации и содержится в круглых скобках, например, feat(parser): add ability to parse arrays
.
Вот несколько примеров:
feat: allow provided config object to extend other configs
BREAKING CHANGE: `extends` key in config file is now used for extending other config files
docs: correct spelling of CHANGELOG
feat(lang): add polish language
fix: correct minor typos in code
see the issue for details
on typos fixed.
Reviewed-by: Z
Refs #133
Ваш плагин будет автоматически опубликован как пакет maven в пакетах Github, как только вы выпустите новую версию.
group
, к которой добавляется ваш artifactId
используется для уникальной идентификации вашего проекта при его импорте в другие проекты. Когда вы импортируете spigot в свой проект, вы используете группу org.spigotmc
за которой следует идентификатор артефакта spigot-api
и версия.
Следующее было взято из официального руководства по именам Maven.
groupId
уникально идентифицирует ваш проект во всех проектах. Идентификатор группы должен соответствовать правилам имен пакетов Java. Это означает, что он начинается с перевернутого доменного имени, которое вы контролируете. Например: org.apache.maven
, org.apache.commons
.io.github
к которому добавляется ваше имя пользователя Github, например io.github.silthus
artifactId
— это имя jar без версии. Если вы его создали, то можете выбрать любое имя, которое захотите, со строчными буквами и без каких-либо странных символов. Например: `maven, commons-mathВам необходимо настроить аутентификацию для пакетов Github, если вы хотите использовать свой пакет maven в других проектах.
gradle.properties
внутри C:Users%username%.gradle
следующим образом и замените YOUR_GITHUB_USERNAME
своим именем пользователя Github, а YOUR_PERSONAL_ACCESS_TOKEN
— токеном доступа из шага 1. gpr.user =YOUR_GITHUB_USERNAME
gpr.key =YOUR_PERSONAL_ACCESS_TOKEN
Вы можете экспортировать свой плагин в каталог плагинов из вашего рабочего каталога с помощью задачи Gradle подготовитьSpigotPlugins . Задача автоматически создаст и скопирует ваш плагин в каталог plugins/
.
Вы можете запустить или отладить свой плагин, используя конфигурацию запуска Server
из IntelliJ, чтобы автоматически загрузить сервер Minecraft, собрать его, скопировать в него свои и зависимые плагины и запустить его в режиме отладки.
Это связано с потрясающей мощью задач отладки Spigradle. Подробную информацию можно найти на странице Spigradle на Github.