- Баллы
- 173
- Имя в Minecraft
- OsipXD
BukkitGradle
v0.6.7
Подключить | GitHub | Пример использования | SpigotMC
Почти всё, что написано ниже - устарело. Новое описание доступно на GitHub
Сразу напишу, что это плагин не для майна, а для разработчиков плагинов. Если Вы разработчик, но еще не поняли почему Gradle хорош, то советую прочитать топик дальше.v0.6.7
Подключить | GitHub | Пример использования | SpigotMC
Почти всё, что написано ниже - устарело. Новое описание доступно на GitHub
Возможно меня покарают за то что это не та ветка форума, но я не нашел более подходящей
Что это такое?
Это плагин для Gradle, который поможет убрать из проекта рутину, которую приходится делать при создании каждого нового плагина. Возможно, те кто писал плагины для Sponge уже убедились, что это удобно на примере SpongeGradle.
Что именно BukkitGradle делает за Вас?
- Подключает плагины: java, idea, eclipse
- Устанавливает при компиляции кодировку UTF-8
- Добавляет репозитории: mavenCentral, mavenLocal, репозиторий Spigot, репозиторий sk89q (содержит большое количество популярных плагинов)
- Автоматически подтягивает Bukkit
- Генерирует файл plugin.yml без Вашего участия, используя информацию из проекта, таким образом сводятся к нулю ошибки в plugin.yml, а так же позволит реже забывать менять версию плагина

- Позволяет запускать тестовый сервер прямо из dev окружения
- Позволяет быстро подключить популярные библиотеки (ProtocolLib, Vault, Placeholder API и др.)
Как подключить в свой проект?
Плагин залит на plugins.gradle.org, благодаря чему Вы можете подключать огромное количество плагинов всего одной строчкой. Как это сделать смотрите здесь.
Как использовать плагин?
Самый простой способ начать использование это клонировать этот проект и запустить таск "runServer".Генерация plugin.yml
Для начала работы не нужно ничего настраивать, хватит стандартных настроек.
После подключения плагин уберет из Вашего plugin.yml пункты, которые должны генерировать автоматически.
Давайте рассмотрим простейший build.gradle файл, в котором используется плагин:
Код:
plugins {
// Подключаем BukkitGradle
id "ru.endlesscode.bukkitgradle" version "0.6.7"
}
// Информация о проекте
group "com.example"
description "My first Bukkit plugin with Gradle"
version "0.1"
YAML:
name: MyPlugin
description: My first Bukkit plugin with Gradle
main: com.example.myplugin.MyPlugin
version: 0.1
Код:
<groupId>.<lower case name>.<name>
Вы можете переопределить все значения, которые попадут в plugin.yml. Кроме того Вы можете изменить необходимую версию Bukkit. Давайте рассмотрим файл конфигурации, где переопределяются все поддерживаемые атрибуты:
Код:
plugins {
// Подключаем BukkitGradle
id "ru.endlesscode.bukkitgradle" version "0.6.7"
}
// Информация о проекте
group "com.example"
description "My first Bukkit plugin with Gradle"
version "0.1"
// Переопределяем стандартные настройки
bukkit {
// Выбираем версию Bukkit
version = "1.10.2"
// Переопределяем содержимое plugin.yml
meta {
name = "MyPlugin"
description = "My amazing plugin, that doing nothing"
main = "com.example.plugin.MyPlugin"
version = "1.0"
url = "http://www.example.com" // Это соответствует атрибуту website
authors = ["OsipXD", "Contributors"]
}
}
YAML:
name: MyPlugin
description: My amazing plugin, that doing nothing
main: com.example.plugin.MyPlugin
version: 1.0
website: http://www.example.com
authors: [OsipXD, Contributors]
Важно!
Если Вам нужно добавить атрибуты, которые не поддерживаются BukkitGradle (например depend), Вы можете создать файл plugin.yml и добавить в него эти атрибуты. Добавлять при этом main, name и др. не нужно.
Если Вам нужно добавить атрибуты, которые не поддерживаются BukkitGradle (например depend), Вы можете создать файл plugin.yml и добавить в него эти атрибуты. Добавлять при этом main, name и др. не нужно.
Запуск тестового сервера
Теперь рассмотрим запуск сервера из dev окружения.
Сервер можно запустить так же без настроек, тогда по умолчанию последняя сборка ядра нужной версии будет скачана в папку "server" в корне вашего проекта, будет создан и запущен скрипт запуска в зависимости от вашей ОС. Ваш плагин будет автоматически помещен в папку "plugins".
Если Вы используете IntelliJ IDEA, то можете запустить таск Gradle ":buildIdeaRun" и плагин добавит Вам конфигурацию запуска (Run Configuration), Вам останется только запустить её.
Альтернативный способ запуска сервера - выполнить таск ":runServer". Это можно сделать, например командой:
Код:
> gradlew runServer
При первом запуске сервера Вы увидите, что не приняты соглашения EULA. Тут нам пригодятся настройки bukkit секции run (всё в том же build.gradle):
Код:
bukkit {
// Все, указанные здесь значения - это значения по умолчанию
run {
// Принимаем EULA
eula = false
// Устанавливаем значение online-mode
onlineMode = false
// Путь, куда будет установлен сервер (относительный)
dir = "server"
// Режим отладки (прослушивает 5005 порт для удалённой отладки)
debug = true
// Устанавливаем кодировку сервера (флаг -Dfile.encoding)
encoding = "UTF-8"
// Аргументы JVM
javaArgs = "-Xmx1G"
// Аргументы Bukkit
bukkitArgs = ""
}
}
Важно!
Принимать EULA и менять online-mode следует именно из этих настроек, иначе плагин будет постоянно перезаписывать то значение, которое настроено в нём.
Принимать EULA и менять online-mode следует именно из этих настроек, иначе плагин будет постоянно перезаписывать то значение, которое настроено в нём.
Лог изменений
v0.6.7- Исправлена работа плагина, когда Gradle в оффлайн режиме
- Теперь не затирается шапка eula.txt со ссылкой на EULA
- Все таски помещены в категорию "Bukkit" и к ним добавлены описания
- Теперь запуск и отладка сервера в IntelliJ IDEA еще удобнее. Консоль сервера находится внутри IDE
- Исправлен баг из-за которого отступы в plugin.yml удалялись
- Исправлена ошибка в ссылке на репозиторий sk89q из-за которой он не подгружался
v0.5.6
- Исправлена ошибка при создании папки плагинов (опять)
- Нерабочий флаг -о заменен на изменение online-mode в server.properties
- Изменен ID плагина на plugins.gradle.org
- Добавлена возможность запуска сервера таском Gradle
- Добавлена возможность конфигурировать сервер
- Плагин автоматически копируется в папку plugins
- Рефакторинг
- Ко всем методам добавлены комментарии
- Исправлены мелкие баги генерации файла plugin.yml
- Чуток ускорена генерация plugin.yml
- Плагин опубликован на RUBukkit
Надеюсь, что из приведенных примеров ясно как использовать плагин. Если есть вопросы или предложения, пишите в комментарии.
Последнее редактирование: