MaxBans 2.0


  • Filename
  • Uploaded by
  • Uploaded
    Nov 5, 2013
  • Size
    205.69 KB
  • Downloads
  • MD5

Supported Bukkit Versions

  • CB 1.6.4-R2.0
  • CB 1.5.2-R1.0



  • Overhaul of Syncer and how it works.
  • Removed Syncer standalone functionality (Nobody uses it and it's a pain to work around)
  • Debug option for syncer
  • Improved syncer: Now accepts more commands, rangebans are synced, whitelists and immunities, and more.
  • All bans are automatically synced now if the syncer is setup through the BanManager class.
  • Added delay to Syncer authentication
  • Changed syncer to blacklist IP's after 10 failed attempts
  • Parse colour codes from syncer properly to console
  • Parse debug colour codes from syncer properly
  • Reimplemented queue
  • Removed exception printing in most cases, enable syncer.debug: true if you want to see these again! (Debug purposes, ofcourse)
  • Bungee Support
    - Small issue with players changing from a banned IP to an unbanned one, players have to try to join twice!
    - Players will now show up with the correct IP on bungee through /checkip and more
    - Also reworked IP bans to account for the new IP checks
    - *Must* enable bungee support in the config! (bungee: true).
    - You *should* use the syncer if you use Bungee!
  • Removed update checking, I will hopefully reimplement this in later versions.
  • Fixed a bug where new SQLite databases wouldn't setup properly
  • Fixed duplicate commands when using /mbreload
  • Fixed an error when a new player joins using Bungee, causing a NullPointer on their IP address
  • Fixed a bug where a player who joined from a banned IP once (and failed) would become IP banned themselves.
  • Fixed a bug where the Syncer would try to ASync kick players
  • Removed unused update checking class

1.9 (Unreleased)

  • GeoIP lookups in /checkip command (Eg, country)
  • Added missing maxbans.whitelist permission to plugin.yml
  • Fix for ordering of /history messages
  • Added mute reasons (You'll have to delete your messages.yml file for these)
  • Fix for case sensitive user kicks
  • Database stability: If one section fails, continue to try the others
  • Fix for the no-permission message
  • List immunities in debug
  • Added compatibility for player joins
  • Correct RangeBan disconnect messages
  • Possible fixes for database writing errors (I really have no idea)
  • RangeBan messages are now customisable (You must delete messages.yml for this to work)
  • Removed RangeBan debug spam
  • When a RangeBan is applied, players with an IP within the range are now kicked immediately
  • Messages.yml is now loaded with default values
  • Perm node for /unwarn has been changed from maxbans.clearwarnings to maxbans.unwarn


  • Tidied up kick messages
  • Added /unwarn command to undo the last warning to a player
  • Added language translation ability (Messages will be changed a lot!)
  • Removed some color code config (The options in old configs won't work due to the new message system, above. Just edit messages.yml to fix it)
  • Fixed a bug where using /ban on an IP address would cause other sync'ed servers to ban the username instead of the IP.
  • Added /immune command, allowing a player to be immune to ALL maxbans punishments. (You are a fool if you use this feature, not my fault if you screw yourself with it)


  • Fixed warnings with expirey of 0 being deleted
  • Added missing history expirey config option
  • Fix a NPE if there are no users from the given IP
  • Removed "Could not validate core", people think it's an error: it isn't.
  • Call actions in the main thread using the Syncer
  • Possible fix for concurrency issue with Syncer connections
  • A GeoIP link in /checkip to lookup the location of the IP easily
  • Throw away dead connections when broadcasting through SyncServer
  • Kick command now accepts IP addresses


  • Explicitly close connections more often
  • Sync: false by default
  • Probable fix for MySQL timeouts
  • Revamped database API
  • Split /checkban and /checkip commands. Checkip is now no longer useless, checkban no longer prints someones IP.
  • DynamicBan importer
  • Fixes for some importing and the autocompletion
  • Reasons now accept \n as a newline character
  • Fixed an issue where /dupeip'ing someone would delete IP info for the target
  • Auto-dupeip option in the config
  • Revamped warnings system - You will have to reconfigure these if you use them!
  • Warnings with expirey of 0 will never expire
  • Improved update checking


  • Improved error handling
  • Fixed issue with /checkban and rangebans
  • Code tidyup
  • Improved debugging
  • Use Synchronized for database writes instead (Safer)
  • Moved some writes to async
  • Stop Syncers before stopping the SyncServer
  • Additional debug info in /mbdebug
  • Support for silent /warn
  • Notify on boot if there is an update available (Configurable to be turned off)


  • Added alias for /mb (/maxbans)
  • Fixed unban NullPointerException when syncer disabled
  • Added rangebans. Usage: /rangeban, /unrangeban, /temprangeban
  • Added MaxBans whitelist... This allows whitelisting certian usernames so that IP bans will NOT affect them (Includes rangebans) Usage: /mbwhitelist
  • Fixed a bug with history loading backwards
  • /Checkban is now sexy
  • Massive amounts of extra useful data in /mbdebug. Also defaults to file output now.


WARNING THIS BUILD WILL REQUIRE A FEW MINUTES TO CONVERT YOUR OLD DATABASE'S FORMAT! It may be longer or shorter, depending on the size of your database!

  • Fixed mute history colours
  • Added /mbdebug
  • Tidied up commands
  • Tell lockdown bypassers the reason for the lockdown
  • Fixed /checkban reporting time in milliseconds for mutes
  • Reworked some inheritance areas of the API
  • Added tab autocompleter to most commands (Eg like vanilla commands have)
  • Added Syncer and SyncServer, this is for advanced users who want to use commands from webpages or have two servers or more.
  • Sync tutorial available here:
  • Added time to history command
  • History now accepts a name. E.g. /history NewGuy 10 reports the last 10 things to happen to NewGuy
  • Does anyone even read this, to be honest?
  • API method to convert lowercase usernames back to normal case usernames


  • Tidied up lockdown code
  • Possible fix for MySQL connection timeouts
  • Added appeal-message to config (You may need to regenerate your config to see it!)
  • Color code support for:
  • Lockdown messages
  • Appeal messages
  • All reason messages
  • Fixed a Permissions issue with lockdowns
  • Fixed a typo in plugin.yml's permissions (One of the seesilent nodes was meant to be seebroadcast)
  • Possible fix for SQLITE_BUSY on reload


  • Tweaked /checkban message to be clearer
  • Added configurable colours for kick messages
  • Fixed a blank space being added to some kick messages
  • Fixed escape sequence characters doubling up (Eg, one ' becomes '' after a reboot)
  • Added /checkban for players. Permission is maxbans.checkban.self
  • Added /mbexport mysql|sqlite commands. This lets you export your database to MySQL or SQLite. (No import yet.)
  • Added /history command
  • Added an alias for each command as /mb<command>. Example: /mbkick and /mbban are the same as /kick and /ban, just in case another plugin overrides these commands.
  • Fixed proxy IPs bypassing lockdown when kicking proxy IPs is enabled
  • Added missing permission check for /mbexport and /mbimport (Kiinda important)
  • Added permission nodes to plugin.yml
  • Gave OPs all maxbans permissions by default
  • Fixed a bug where failed unbans were announced as successful
  • Added maxbans.seesilent permission node, to see any silent commands given out.
  • Reworked unban command
  • Added maxbans.seebroadcast permission node (given to players by default!) to see normal ban messages (Not silent ones)
  • Fixed a possible issue were lockdown permission checks would come before a player was given permissions at all
  • Metrics tracking


  • Trim trailing spaces in reasons
  • Fix reason when none given and command was silent
  • Fix error when silently kicking with no reason
  • Added importer/exporter (Exporter untested) - Command is /mbimport and /mbexport.. Only works for "vanilla" at the moment.
  • Added DNS blacklisting (Looks up IPs on to see if the IP is a known proxy/spammer)
  • Fixed /ban command not printing the reason to the console
  • Added default reason config option in config


  • Fixed /mbreload command
  • MySQL support added
  • Ban command now accepts IP addresses
  • Improved duplicate IP performance
  • Highlight username or IP in notification message, depending on which one is banned


  • Initial Release

**These issues are due to the "bungee: true" option in the config, and are caused by the way Bungee handles IP addresses!**
- Banned IP's may connect to the server, but will be disconnected in the next server tick (Plus the response time from the Bungee server)