Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v8 Roadmap [WIP] #905

Open
4 tasks done
confuser opened this issue Dec 7, 2020 · 1 comment
Open
4 tasks done

v8 Roadmap [WIP] #905

confuser opened this issue Dec 7, 2020 · 1 comment

Comments

@confuser
Copy link
Member

confuser commented Dec 7, 2020

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
  • 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 to database 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
@A248
Copy link
Contributor

A248 commented Jan 14, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants