v8 Roadmap [WIP]
confuser opened this issue ยท 1 comments
Plugin Changes
- Migrate Geoip functions into a separate addon - BanManager-GeoIp
- Not used very much according to stats, and would significantly reduce the overall JAR size
- Migrate Report functions into a separate addon - BanManager-Reports
- Not all users want to use this and often find it conflicts with their existing reporting system
- Currently not useable on BungeeCord due to a lack of player locations and therefore must work on Bukkit/Sponge side with BanManager on the proxy only
- Migrate report logs from WebEnhancer to BanManager-Reports
- Remove data conversions/imports support for other plugins
- Most users will only use this as a one off
- This can be handled by a web based UI which accepts different database dumps
- Decouples from plugin itself, enabling additional migrators to be added without BanManager plugin releases
- Support converting to and from BanManager to allow users to migrate between different punishment plugins easily
- Only to be removed once UI is completed
- Use SQL transactions where possible for robustness
- Historically the plugin leveraged MyISAM, however it's InnoDB based now
- Improve database outage resiliencies
- The plugin uses an in memory cache to prevent banned players from joining the server when the database is down
- This has become less viable over the years as more features have been added, as such, review common events (such as server joins)
- Add a database healthchecker and ensure exception handling doesn't dump lots of errors during these periods, perhaps disable sync/polling tasks during this state
- The plugin uses an in memory cache to prevent banned players from joining the server when the database is down
- Migrate
global
functionality into a separate addon - BanManager-Global (name TBD)- Given this option is to enable networks to use individual bans per server, whilst retaining the ability to ban a player across all servers, it often causes confusion for users who wish to use the same bans on all servers on a network
- Re-add notifications of new releases when player's with update permission node joins server
- Investigate PostgreSQL support
- Create BanManager-Jails addon
- Create BanManager-Sync addon
- Historically the plugin has always used polling to sync data between servers. This is still useful for syncing changes from non-plugin apps such as the WebUI.
- This addon should allow sending data changes over Lillypad/BungeeCord messaging systems for faster updates
Configuration Changes
- Migrate
local
todatabase
as a top level option - Remove database
leakDetection
- Allow additional JDBC options to be passed if user requires
- Revisit messages.yml to allow multiple localisations
CI/CD
- Migrate from maven to gradle
- Ensure BanManagerCommon dependencies are correctly useable by addons such as WebEnhancer, currently it's quite messy and requires both common and bukkit/sponge builds
- Migrate from travis to GitHub Actions
Support converting to and from BanManager to allow users to migrate between different punishment plugins easily
I really like this idea. If you add it to BanManager, I'll add it to LibertyBans as well -- on my word and honor.
It'll show the competition we are fearless. No proprietary plugin would do the same. Neither would a plugin desperate for users.