[SPIGOT-3774] Expanding the capabilities of the plugin.yml Created: 22/Jan/18  Updated: 22/Jan/18  Resolved: 22/Jan/18

Status: Resolved
Project: Spigot
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Minor
Reporter: Maxim Van de Wynckel Assignee: Unassigned
Resolution: Won't Fix Votes: 0
Labels: plugin.yml


 Description   

Changes to plugins and servers will keep happening. These changes can break a plugin.
The plugin.yml offers a way for dependencies (also needed to determine the loading order) but it would be useful if they can give more in depth constraints such as:

- Minimum server version

  • Plugin dependency with minimum version

For 1.13 this is of course too late - but if in the future another big change happens (or feature changes) this can help.

I know spigot provides a way for developers to select the supported versions in their resources, but this is a more global approach

Example:

server-versions: ["1.11.*","1.12.*"]

or

server-versions: [">1.11","<1.13"]


 Comments   
Comment by md_5 [ 22/Jan/18 ]

Yeah, so the plugin should handle that logic based on its available features then.
We shouldn't be pinning plugins to hard server versions.

Comment by Maxim Van de Wynckel [ 22/Jan/18 ]

I was mainly referring to features (not nms) - such as "ow there is a new item this plugin requires" or "this plugin fixes water flow in 1.14"

but I get your decision

Comment by md_5 [ 22/Jan/18 ]

This is what the awareness flags is for.
Bukkit uses them in 1.13 to decide what to do with plugins.
Tying plugin support to Minecraft versions is not how Bukkit should work because Bukkit is meant to be version agnostic and care dactfor NMS is zero.

Comment by Maxim Van de Wynckel [ 22/Jan/18 ]

I know, it was just an example (the "server-version" also seems wrong) but I wanted to make clear
to make it somehow possible to specify a range or specific versions

Comment by Black Hole [ 22/Jan/18 ]

There is a standardized way to specify version ranges:
https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html

Comment by Maxim Van de Wynckel [ 22/Jan/18 ]

The idea for this (mainly the server version requirement) is to
easily specify compatibility. It's also a wakeup call for developers to actually
think about compatibility (because they are literally writing what version is compatible)
and possibly make them think about if they should support old and dusty versions (thinking in the future, since this wont work on older versions)

This could of course be added by developers at runtime, but same could be said
about dependencies

Generated at Tue Apr 22 03:57:09 UTC 2025 using Jira 10.3.5#10030005-sha1:190c783f2bd6c69cd5accdb70f97e48812a78d14.