Ban Management

Ban Management

193k Downloads

v8 Roadmap [WIP]

confuser opened this issue ยท 1 comments

commented

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
commented

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.