Skip to content

v1.0.0

Latest
Compare
Choose a tag to compare
@osipxd osipxd released this 18 Apr 19:04
2cd9959

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:

  1. Reduce maintenance burden: By delegating core functionality to actively maintained projects
  2. 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.
  • Breaking change!
    Use jpenilla/resource-factory under the hood to generate plugin.yml.
    This change enables full configuration of plugin.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
  • 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 default bukkit.apiVersion.
    It was implicitly set to 1.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 specified bukkit.apiVersion is used.
  • Accept EULA using CLI parameter -Dcom.mojang.eula.agree=true instead of changing eula.txt

Changed

  • Change the default value of bukkit.server.debug to false.
    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