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/
@Chalkie19
Okay, I'm going to do something internal to MaxBans for whitelist handling.
When a user connects...
This means that a whitelisted user will be able to join from banned IP addresses. It'll also skip the DNSBL lookups.
I'm just working on tidying this all up first before I release another version...
@Chalkie19
With the whitelist, would it be preferable to have a MaxBans whitelist, or to use the Minecraft Whitelist.txt file?
@thudog77
My mistake, I will have a fix released soon.
Unban error http://pastebin.com/b6vA1seP
@Chalkie19
So you want to whitelist usernames instead of ranges? Hmm.
@netherfoam
As I said in a previous post, I am hoping to have the exception via user names like rangebans have. Example for people who play at internet cafes or have family members banned but are still able to join.
Now, I'm assuming you don't want any kind of whitelisting capabilities with this right? And you want me to store it similar to how an IP ban is stored! With like a /rangeban command. Well.... Shouldnt be too hard. Too bad my computer just died so I'll be out of action for a little...
@netherfoam
All I have needed so far was the x.x.*.* So 192.168.*.* would ban 192.168.0.0 to 192.168.999.999 for example.
Just did a 5 minutes timmings again, range bans is over 550% per tick... crazy. Compared to other plugins < 1%. unfortunately it is a much needed plugin, which makes it painful to keep lol.
Well, what type of wildcard support at you suggesting? I can do things like x.x.*.* easily, but something like *.x.*.x is much more difficult to do,
@netherfoam
Yes wold card support would be greatly appreciated. Basically the two features I am hoping to see is the wild card support example 192.168.*.* also the exception command is great. An example for this reason is there are 3 brothers that play the server, first 2 brothers are banned due to trying to come on as new accounts after being banned, so I was able to ban their dynamic IP then add the brother's account that was not banned to the exception list so only he could join from that banned IP range.
I appreciate the work on this plugin, will be willing to donate again if you add a button on here or I could just do it via your server again. Atm rangebans is the only thing spiking on my server but is needed so I can not remove it.
So (Im off my face right now) uh, do you want to ban jsut end ranges like say 182.168.2.*? because us aussie ips dont have a limit, like we will be 126.*.*.* one moment and 192.*.*.* the next. So it will only work against some(non aus IPs)
Imd trying to work on an efficient algorithm to do it (the other rangebans plugin seems to use a bruteforce algortihm which seems pretty slow by comparison) but it might take me a while to complete but uh, you shuld be able to expect it in the next version (only to a basic level though)
@netherfoam
Dynamic IP's.
@Chalkie19
What do you want to ban sets of IPs like that for?
Any idea if something like http://dev.bukkit.org/server-mods/rangebans/ could be implemented? I like that plugin but it seems it's lack of updates is effecting server performance where as maxbans does not even come close to hitting 1%.
@FlashLight32
I can add an alias if I have to (Never heard of mod broadcast), so I've added /maxbans for the next release. Though, it is just a command list.
@AlexM850
Glad to hear! Cool server :)
Going to try this plugin out. :) Looking forward to it being pretty awesome! ;)
Edit: Already loving the plugin! Keep up the good work!
One plugin already use /mb cmd so that interfere with your plugin :|
mb = mod broadcast in reportrts
@therealspoljo
The issue with this is most permission plugins strip a users permissions when they log out. This means that the player will be bannable whenever he/she is offline. This is why I'm not going to implement it.
Plus, you should be demoting people if they're banning you...
@YiveMe
It does work with herochat. My server runs herochat and this fine.
do you think you can make this work with Herochat since people can bypass it