py-mine/PyMine-Server

Add more metadata fields to plugin.yml

kevinjosethomas opened this issue ยท 9 comments

Feature

Add more meta data fields to plugin.yml like -

  • name (required)
  • description
  • version (required)
  • author
  • license
  • website/docs?

Reason

Allows more customizability for the developer, easily provide information about the plugin in a command like /pl info? and much much more; no harm, most of it is optional

Pretty sure this isn't something that needs any changes, all fields are loaded from the plugin.yml already afaik, it's up to the dev to include it.

Although, these fields (because they'll probably be used in something like a /plugins command), should be required, not up to the dev to add it. Changes for this will prob be made in pymine/api/__init__.py

Not all of them should be required though, I agree with @trustedmercury about which should be required and which shouldn't

(some of) The information from plugin file should be able to be dynamically modified.
Say there is a plugin that takes the git URL of a plugin, fetches the head or whatever, and finds a list of contributors and dynamicly adds it to the end.
Also suggestion: multiple author support
Able to define authors: [] as a list or authors
If you define both, author should be used as a shortened version in space dependant places ? (The456gamer + 25 more)?

Some info should be read-only however, like the plugin name, to prevent issues

For the plugin.yml, a new identifyer called dist-info or something, a list of meta tags set by the distributor (say pymine official plugin repository might add a tag called category etc

Might be better as a sidecar like file as this would break signing (code modified by distributor)

Use:: the distributor might provide a custom plugin that manages its own plugins, including custom auto updates, in-game plugin management (live reload, install, uninstall)

  • Display plugins in custom format. Would actually make more sense as a "dB"entry
    Say pluginman installs plugin, attaches tag saying it was installed by it, and offline versions of information in its API.

Each plugin developer distributing an extra plugin for auto updates sounds like a mess, especially since that code has to be ingrained deep into the plugin loading process. We actually had plugin auto updating as a separate plugin a while ago, but it turned out to be a mess that was easily cleaned up by just making it a core part of PyMine.

i was more thinking plugin distributor, like spigotmc.org
and it was as an optional compliment to the built in updater