MaxBans
Support Spigot from 1.7.x to 1.12.x
MaxBans is a project I've been writing for my server, MaxGamer. I struggled to find a banning plugin that wasn't a joke, and the good plugins were all designed for Premium servers anyway. Nothing gave us the tools that SHOULD have been out there - Like temp mutes, temp IP bans, duplicate IP lookups, and good autocompletion!
It is thoroughly tested on an Offline-Mode server, so you can bet it's rock solid and feather light!
Databases
- MySQL
- SQLite (Flatfile)
Best Features
Here are the top ten features of MaxBans over other banning plugins:
- Full UUID support
- Ability to view players' previous username(s) - date of change
- Full server lockdown - Prevent anyone from joining with a custom message (Such as bot attacks)
- Offline player name auto completion
- Warnings system
- Duplicate IP detection
- DNSBL lookups to stop proxys!
- Multiline kick messages! No more running off the screen!
- Notifications when a banned player tries to join!
- All times are relative! (Eg. "You're banned for 4 minutes 6 seconds", not "You're banned til 5:43pm CST")
- Customize every colour!
- Block commands like /me when muted!
Commands
- /unban <name, IP or UUID>
- /ban <name, IP or UUID> <reason>
- /ipban <name, IP or UUID> <reason>
- /tempban <name, IP or UUID> <number> <minutes|hours|days|weeks|etc> <reason>
- /tempipban <name, IP or UUID> <number> <minutes|hours|days|weeks|etc> <reason>
- /mute <name or UUID>
- /tempmute <name or UUID> <number> <minutes|hours|days|weeks|etc>
- /kick <name, * for everyone or UUID>
- /checkip <name or UUID>
- /uuid
- /togglechat
- /dupeip <name, IP or UUID>
- /checkban <name, IP or UUID>
- /warn <name or UUID> <reason>
- /clearwarnings <name or UUID> <reason>
- /unwarn <name or UUID> - Removes a players most recent warning
- /unmute <name or UUID>
- /history [name] [number of records] - Displays a history of bans, kicks, mutes & more dealt
- /mbreload - Reloads the plugin
- /mbdebug - Outputs debug information for me if you're having issues!
- /mbwhitelist <name or UUID> - Allows the given user to bypass IP bans (Not regular bans! Eg, use for players with siblings who need to be IP banned)
- /ipreport - Basically, a mass /dupeip, on everyone who is online
- /lockdown [reason]
- /forcespawn - Teleports someone to the spawn (Twice, so /back won't work)
- /mbreload - Reloads maxbans
- /mbimport - Imports vanilla minecraft (And others) bans.
- /mbexport - Export bans to vanilla, MySQL or SQLite databases. (Allows swapping SQLite <-> MySQL), and others ban plugins.
- /rangeban <ip1-ip2> [reason] - Bans the IP range from ip1 to ip2 for the supplied reason.
- /temprangeban <ip1-ip2> <time> <hours/min/sec> [reason] - Temporary variant of above
- /unrangeban <ip> - Removes any RangeBan which overlaps with the given IP. Eg, if 127.0.0.1-127.0.0.5 is banned, unbanning 127.0.0.3 will lift the whole ban on 127.0.0.1-127.0.0.5.
Almost any command may have -s added in it to prevent announcing it, for example:
/tempban NewGuy101 -s 1 hour MaxBans is Awesome!
- Nobody will see the announcement that NewGuy101 was temp banned, just the fact he "has left the game."
If you want an in-depth analysis of each command, try here:
http://dev.bukkit.org/server-mods/maxbans/pages/command-tutorial/
Configuration Guide
http://dev.bukkit.org/server-mods/maxbans/pages/config-tutorial/
This is an in-depth guide on how to configure MaxBans :) If I've missed anything, ask in the comments!
Common Issues
http://dev.bukkit.org/server-mods/maxbans/pages/common-issues/
This is a list of common issues people have with MaxBans, such as plugin conflicts.
Features that will never implement
- Fines (Use your economy to do this!)
- Jails
- Regional bans
- Ban weightings
Ban Listing Webpage
Check out this guy's work for an amazing webpage setup to view MaxBans while using MySQL.
Demo (dont download from here): http://yive.me/maxbans/.
Its updated and is working on latest version of MaxBans!
You can download the updated version from here: https://github.com/FabioZumbi12/maxbans-php
- Added pagination;
- Fixed other ban pages not loading;
Metrics
This plugin uses Hidendra's plugin metrics system (http://mcstats.org/plugin/maxbans) which tracks server information including:
- A unique ID
- Java version
- Online/Offline mode
- Plugin & Server version
- OS name, version, architecture
- Number of CPU cores
- Players online
- Metrics version
These stats can be disabled using the PluginMetrics config file (BukkitServer/plugins/PluginMetrics/config.yml).
GeoIP Lookup
MaxBans will download a GeoIP.csv file, which allows it to look up the country of origin for IP addresses. The file is downloaded directly from maxmind GeopIP site. The file is only downloaded once (Unless it is renamed/removed).
FabioZumbi12:
Hello all. I am other dev and now i assuming the Project for bugfixes and possible improvements.
Netherfoam still busy but still online on comunity. I have a lot of time to code (i have a home work) and i can maintain this plugin (and my others) Always updated ;)
See ya o/




-
View User Profile
-
Send Message
Posted Jan 2, 2014@netherfoam
Thanks. Also, I think there's a bug. When someone kicks an immune player, it still shows the kick message but the player is not kicked.
-
View User Profile
-
Send Message
Posted Jan 2, 2014@dmncpham
Bad bad bad idea to do so.
But to make a player immune to bans etc, /mbimmune <name> on will do the trick.
-
View User Profile
-
Send Message
Posted Jan 2, 2014Is there a way to prevent players from being banned, kicked, or muted?
-
View User Profile
-
Send Message
Posted Jan 2, 2014@siemaeniu500
Several people have started developing it but none have released a final version. I know http://dev.bukkit.org/profiles/MCTempestCraft/ was working on one (Which looks quite sleek, might I add) over at http://tempestnetwork.ca/bans/ and is probably the most complete one I've seen. Maybe send the developer a message asking about it :)
-
View User Profile
-
Send Message
Posted Jan 2, 2014There is any PHP banlist template?
-
View User Profile
-
Send Message
Posted Jan 1, 2014@MathewPerth
It works fine with essentials, it just overrides most of the commands.
-
View User Profile
-
Send Message
Posted Dec 31, 2013How does this co operate with Essentials? Looks very good
-
View User Profile
-
Send Message
Posted Dec 29, 2013@HeavenCommunity
Umm, the timestamps are in milliseconds so divide by a thousand if you want to convert it to epoch time. (And then it'll display the date properly)
-
View User Profile
-
Send Message
Posted Dec 29, 2013Hi!
I think there is a problem with the plugin. When I ban somebody and the plugin puts it in to the database (and I display it on my website), I get a strange date: 00:23 08-08-45964. Any idea how to fix this?
Thanks
-
View User Profile
-
Send Message
Posted Dec 23, 2013@chopstick121
If you setup Spigot correctly with the proxy server (The Bungee server) then there is no need to fix IP addresses.
Why? Because when setup correctly, Spigot will resolve the players real IP automatically (This is a much safer solution, too)
-
View User Profile
-
Send Message
Posted Dec 22, 2013@netherfoam
wait.. why dont you need to turn bungee on with spigot?
-
View User Profile
-
Send Message
Posted Dec 21, 2013@chopstick121
You need to choose a password for the SyncServers. The other servers must have the same password to connect successfully.
Check out these pages for help:
http://dev.bukkit.org/bukkit-plugins/maxbans/pages/ban-syncing/
http://dev.bukkit.org/bukkit-plugins/maxbans/pages/sync-example-config/
-
View User Profile
-
Send Message
Posted Dec 21, 2013it said password when im seteting up for bungee config what i do
-
View User Profile
-
Send Message
Posted Dec 20, 2013@ferdl9999
Try modify the reason column in the mutes table from your database to allow null, that should be a temporary fix :)
-
View User Profile
-
Send Message
Posted Dec 20, 2013@daisyduck1
Hmm, try delete your database and start from scratch, unless it's a big collection of bans?
-
View User Profile
-
Send Message
Posted Dec 20, 2013Hi, i get this error by exporting maxbans to mysql: http://pastebin.com/0ZkbjFAc
-
View User Profile
-
Send Message
Posted Dec 18, 2013I have a problem with the MySQL Database. Did you know the reason, why the Column 'actual' was not found/created?
[00:48:02] [Server thread/INFO]: [MaxBans] Loading mutes [00:48:02] [Server thread/INFO]: [MaxBans] Loading player names... [00:48:02] [Server thread/WARN]: java.sql.SQLException: Column 'actual' not found. [00:48:02] [Server thread/WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) .................
-
View User Profile
-
Send Message
Posted Dec 17, 2013@netherfoam
Thanks, ill look into it when a get a bit of time this afternoon. Appreciate the help, Maybe it has to do with the multiversion I am using or spigot? When a player try's to join/ping the server?
-
View User Profile
-
Send Message
Posted Dec 17, 2013@Chalkie19
So they're actually totally different stack traces you've sent me, lol. Similar issue though...
It's weird though, the server is sending a '[m' command (An invalid one, it should be totally different...) to the clients :S will PM a changed version.
EDIT: I have the syncer working on my own bungee server with no issues, I don't understand what would cause this :|
-
View User Profile
-
Send Message
Posted Dec 17, 2013Yea... I am unable to get you the "When it started" log, I only keep 10 x 10MB logs at at time to save on space... and 1 10MB log starts at; 2013-12-17 17:11:45 [INFO] [MaxBans-Syncer] Malformed packet: [m and ends at 2013-12-17 17:11:58 [SEVERE] java.lang.StringIndexOutOfBoundsException: String index out of range: -1 http://pastebin.com/fYXhEzKi
Yea, it loves to spam :D Like I said, only starts to happen when servers B (Read mode non sync servers) are online and the Server A (Sync server, R/W mode) Is restarted.