This repository was archived by the owner on Jun 7, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 32
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
Copy link
Copy link
Open
Labels
doneThis issue has been dealt with and will be closed with the next pull request into masterThis issue has been dealt with and will be closed with the next pull request into masterenhancementNew feature or requestNew feature or request
Milestone
Description
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
- Version pattern must be
- 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
Labels
doneThis issue has been dealt with and will be closed with the next pull request into masterThis issue has been dealt with and will be closed with the next pull request into masterenhancementNew feature or requestNew feature or request