Pivot!
After a 4-year hiatus in releases, the plugin landscape has evolved significantly.
jpenilla's excellent plugins run-task and resource-factory have been released,
and they're perfect for running Paper servers and generating plugin.yml
.
Rather than maintaining our own implementations, BukkitGradle now leverages jpenilla's work, allowing us to:
- Reduce maintenance burden: By delegating core functionality to actively maintained projects
- Focus on innovation: Instead of reinventing the wheel, we can add new features
The main goal of BukkitGradle is now to provide nice defaults and a unified API
that simplifies plugin development by seamlessly integrating these plugins.
Features
- Breaking change!
Use jpenilla/run-task plugin and integrate run-paper for server execution,
improving maintainability and compatibility with various server versions.- Remove
bukkit.server.coreType
property.
Spigot is not supported anymore, PaperMC is the only supported server.
If you need to run other server cores,
please file an issue.
- Remove
- Breaking change!
Use jpenilla/resource-factory under the hood to generateplugin.yml
.
This change enables full configuration ofplugin.yml
from a build script, but it comes with some renaming:- Configuration block
bukkit.meta { ... }
->bukkit.plugin { ... }
- Property
bukkit.plugin.url
->bukkit.plugin.website
- Task
:parsePluginMetaFile
->:parsePluginYaml
- Task
:mergePluginMeta
has been dropped. Use:mainResourceFactory
instead - Package
ru.endlesscode.bukkitgradle.meta
->ru.endlesscode.bukkitgradle.plugin
- Configuration block
- Breaking change! Don't add repositories implicitly.
It was impossible to opt out from automatic repositories adding.
From now, repositories should be added manually. For example:repositories { mavenCentral() papermc() }
- Breaking change!
Don't set defaultbukkit.apiVersion
.
It was implicitly set to1.16.4
for the sake of simplicity, but in fact it was unobvious behavior.
Now,bukkit.apiVersion
should be set explicitly:bukkit { apiVersion = "1.20.5" }
- Support setting "api-version" containing a patch version for v1.20.5+
- Add dependency substitution rules fixing paper groupId and substituting bukkit version.
In version catalogs placeholder value{bukkit.version}
can be used, and it will be replaced with the actual version:[libraries] paperApi = { module = "io.papermc.paper:paper-api", version = "{bukkit.apiVersion}" }
- Set the default JVM toolchain version
instead of setting JVM target and source compatibility to 1.8.
By default, the minimal supported JVM version compatible with the specifiedbukkit.apiVersion
is used. - Accept EULA using CLI parameter
-Dcom.mojang.eula.agree=true
instead of changingeula.txt
Changed
- Change the default value of
bukkit.server.debug
tofalse
.
It is recommended to use IDE facilities to run server with enabled debugging. - Change API for disabling
plugin.yml
generation:-bukkit.disableMetaGeneration() +bukkit.generatePluginYaml.set(false)
- Use lazy API for
bukkit.apiVersion
property.
Fixed
- Fix PaperMC repository URL
- Fix group ID for PaperMC 1.17+
- Fix compatibility with new versions of Shadow plugin
Housekeeping
- Target JVM 1.8 → 17
- Gradle 7.2 → 8.13
- Remove old deprecated APIs
Full Changelog: 0.10.1...1.0.0