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

Rework of module system for Unknown Block Update #270

Open
11 tasks done
TheMeinerLP opened this issue May 20, 2020 · 2 comments
Open
11 tasks done

Rework of module system for Unknown Block Update #270

TheMeinerLP opened this issue May 20, 2020 · 2 comments
Labels
done This issue has been dealt with and will be closed with the next pull request into master enhancement New feature or request

Comments

@TheMeinerLP
Copy link
Contributor

TheMeinerLP commented May 20, 2020

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.

@GiantTreeLP GiantTreeLP added this to To do in Code quality via automation May 20, 2020
@GiantTreeLP GiantTreeLP added this to To do in 2.2.0 via automation May 20, 2020
@GiantTreeLP GiantTreeLP added enhancement New feature or request rework Some enhancements have to be made and removed rework Some enhancements have to be made labels May 20, 2020
@TheMeinerLP
Copy link
Contributor Author

An event is made from the file deployment instead of via module interface

@GiantTreeLP GiantTreeLP moved this from To do to In progress in 2.2.0 Jun 8, 2020
@Likqez
Copy link

Likqez commented Jun 10, 2020

#277 is merged. This should be moved to finished.

@GiantTreeLP GiantTreeLP moved this from In progress to Done in 2.2.0 Jun 10, 2020
@GiantTreeLP GiantTreeLP moved this from To do to Done in Code quality Jun 10, 2020
@GiantTreeLP GiantTreeLP added the done This issue has been dealt with and will be closed with the next pull request into master label Jun 10, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
done This issue has been dealt with and will be closed with the next pull request into master enhancement New feature or request
Projects
No open projects
2.2.0
  
Done
Code quality
  
Done
Development

No branches or pull requests

3 participants