Skip to content
This repository was archived by the owner on Jun 7, 2022. It is now read-only.
This repository was archived by the owner on Jun 7, 2022. It is now read-only.

Rework of module system for Unknown Block Update #270

@TheMeinerLP

Description

@TheMeinerLP

Rework of module system

This issue describes changes coming in the future. We are going to hard break old code. Old modules are no longer going to be loaded. The idea is that the plugin jar is copied from a module into the proxy or/and server automatically.


Feature List:

  • Structure:
    • Version parsing via semver4j based on issue Add Semver for new module system #265 (1)
    • Interface for developers to use an Auto Update feature (the cloud periodically checks the repository)
    • Similar to the Spigot or BungeeCord Plugin API for ease of use.
    • Extra data folder per module like in Spigot
    • Two properties, one for the path in the module to the plugin for servers and another one for proxies, allows loading auxiliary files into services
  • Loading of modules:
    • Version pattern must be MAJOR.MINOR.PATCH layout; other layouts are not allowed (cp. semver). Modules which do not follow that pattern won't be loaded.
    • Dependencies are parsed similar to NPM versioning. This allows the use of regex based versioning for more compatibility checking
    • A property for the minimum supported CloudNet version
    • Automatically copy the plugin jar from the module into the server and proxy
  • Not included:
    • Automatically config handling
    • Dependencies based on maven

1:

Semver has version patterns, that allows us better compatibility for more modules and the cloud. For informations checkout semver.org. The used dependency is semver4j, there also description on which optional parts are allowed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    doneThis issue has been dealt with and will be closed with the next pull request into masterenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions