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 Sep 5, 2013Hey netherfoam,
I am getting 05.09 11:24:12 [Server] INFO Could not send request to SyncServer (Not connected). Queued it instead. On my ServerB, ServerA is fine and has remained up/stable.
Any ideas? I see no other errors in A or B.
Sorry never saw the start up error, late here and tired http://pastebin.com/Heg4KbGM (SERVER B) The port is the default one and was working.
-
View User Profile
-
Send Message
Posted Sep 3, 2013@netherfoam
Seems to be working well so fair. Thank you :)
-
View User Profile
-
Send Message
Posted Sep 3, 2013@Chalkie19
Something like this:
ServerA:
ServerB & C:
Basically, only one server should modify one database. Thats why read-only - So that when ServerB says 'Hey everyone, ban XYZ', ServerA adds the ban to the database, and ServerB&C don't try to add it as well. (Eg, you'd end up with 3 bans for the same guy in your database)
All servers need to have Sync: true because that enables them talking to the SyncServer to say 'Ban X for me.'
It shouldnt affect performance, all networking is done in a separate thread.
Likely bugs are just simple ones - Such as there was a bug where if you did /ban 192.168.2.3, then on the server you did it on would ban the IP 192.168.2.3, but the rest of the syncers would ban the USERNAME 192.168.2.3. (I've fixed this particular one ofcourse) - They won't be devestating, and you probably won't notice them unless you're looking hard.
-
View User Profile
-
Send Message
Posted Sep 3, 2013@netherfoam
I did have a look at sync server but the read only part for the DB confused me.
Say I have;
Server A (lobby/proxy) This is where all the traffic starts at, they can't join any other servers.
Server B
Server C
If server A has Sync enabled and Read Only off and Server B and C have sync off and Read Only On, does that mean bans/warnings ect from server B and C be sent to Server A and stored? And if so how long until it comes into effect?
Also is this going to effect performance at all? I had hopped not to have the ban systems on the secondary servers and have it all at the "backend", but making my staff leave that server to ban/warn ect that player seems like a badly thought out plan.
What are the bugs that I could run into? Are they DB wiping or just not updating one or more of the servers?
Thanks for the help and sorry about your study's, I was not trying to be push just a reminder since 6+ people had replied above it.
-
View User Profile
-
Send Message
Posted Sep 3, 2013@Chalkie19
Sounds like you want to use the syncer option, have you had a look at it in the config? I can help you set it up as needed, but there are already a few paragraphs on setting it up - http://dev.bukkit.org/bukkit-plugins/maxbans/pages/ban-syncing/
Make sure that you set all of the servers to read-only databases except for one (As I see you're planning on using the same database for two servers) - this is an option in the config.
The syncserver uses sockets, so the servers don't have to be on the same computer, but it is still a fairly beta feature (Not many people use it, but I have tested the basics) so there may be bugs.
As for the range ban... Still working on it, I haven't had time lately, study and life has got the best of me for now.
-
View User Profile
-
Send Message
Posted Sep 2, 2013netherfoam, May I get an update range ban message issue please. Also could there be an option for disabling the caching the plugin does? I have a bungeecord set up at the moment had have the ban system on the lobby server (first server people can join) but staff are a bit annoyed they have to go back there to do the bans ect, I was hoping to just throw the plugin in the main server as well and have it hooked up to the same DB.
-
View User Profile
-
Send Message
Posted Sep 1, 2013@DeWilX
Did you recheck his IP? An IP ban will not work if a player uses a different IP address (Such as, uses a proxy, restarts his modem, uses a friends house, etc)
Do /checkip on him, and it will give you his ip address. Also, the /banip command you used wasn't MaxBans's command, it looks to be essentials's ipban command.
-
View User Profile
-
Send Message
Posted Sep 1, 2013player somehow with same ip bypass ban
http://img14.imageshack.us/img14/1821/vzdt.png
-
View User Profile
-
Send Message
Posted Aug 31, 2013@Quackster_
One ban contains a reason (approx 20 letters), a name (approx 8 letters), a timestamp (a long, aka, 64 bits) and a banner (approx 8 letters). Total 36 letters, at 16 bits per letter, that's total of 640 bits per ban, or, 80 bytes. Say they had 100,000 bans (which is bs, there are hardly that many MaxBans bans in existence), that's 8,000,000 bytes, or, 8mb of RAM.
Are you concerned about 8mb of ram?
-
View User Profile
-
Send Message
Posted Aug 31, 2013Hello.
Are you aware that this plugin loads ALL bans on startup? What are you going to do about this? Because it matters if someone has thousands and thousands of rows.
-
View User Profile
-
Send Message
Posted Aug 28, 2013how i can remove some username from scanning list? because some user switched account but scanlist still saying that player have 2 account
-
View User Profile
-
Send Message
Posted Aug 26, 2013Good plug :). Is it possible to immediately ban all proxies in mySQL table proxyes? Sorry for my english
-
View User Profile
-
Send Message
Posted Aug 21, 2013@netherfoam
Insets smart ass remark about English and never gets help again :(
Basically it is firing the range ban message multiple time which the client is unable to display. So example instead of the normal
You're ranged banned!
Reason: bla
By: Chalkie
Feel free to appeal this ban at ect.ect.com/kbro
It's spamming
You're ranged banned!
Reason: bla
By: Chalkie
Feel free to appeal this ban at ect.ect.com/kbro
Feel free to appeal this ban at ect.ect.com/kbro
Feel free to appeal this ban at ect.ect.com/kbro
Feel free to appeal this ban at ect.ect.com/kbro
Feel free to appeal this ban at ect.ect.com/kbro
Feel free to appeal this ban at ect.ect.com/kbro
Feel free to appeal this ban at ect.ect.com/kbro
Feel free to appeal this ban at ect.ect.com/kbro
Feel free to appeal this ban at ect.ect.com/kbro
Feel free to appeal this ban at ect.ect.com/kbro
Which not only can the client not display (Hence (1878>256) (Which means it's trying to display 1878 and can only display 256 (I Belive))) but the player can not see the reason. I hope this helps.
-
View User Profile
-
Send Message
Posted Aug 19, 2013@Chalkie19
I'm not exactly sure what I'm looking at there, care to elaborate maybe?
-
View User Profile
-
Send Message
Posted Aug 16, 2013@WsupPanda
Try /history <playername>
By default I think the history expires after 7 days, but you can change the limit under history-expirey-minutes: in the config. Using a 0 should not expire the history at all but may increase plugin load time after a lot of history has built up.
-
View User Profile
-
Send Message
Posted Aug 16, 2013Any chance there can be a ban history system implemented? Sometimes players get unbanned, or come back after they have been temp banned. I don't always remember who has gotten banned in the past and for what, I want to know.
This might be able to be achieved by doing a command such as /banhistory _player_ or an addition to /checkban? It'd be really useful because on my server we allow ban appeals only once, and not twice. However, I can't always remember if a player has been banned in the past and for what.
Hope you take this into consideration, thank you :)
-
View User Profile
-
Send Message
Posted Aug 16, 2013@netherfoam
Sorry for the late reply. Seems to work but is a bit spammy.
Gives the error Internal exception: java.io.IOEcxeption:Recieved string length longer than maximum allowed (1878>256)
-
View User Profile
-
Send Message
Posted Aug 8, 2013@Chalkie19
That's a different error to last time :) Weird that it works for me though. Try this version https://dl.dropboxusercontent.com/u/72835893/Plugins/MaxBans.jar
-
View User Profile
-
Send Message
Posted Aug 7, 2013@netherfoam
nope.avi
http://pastebin.com/evRSRHy5
-
View User Profile
-
Send Message
Posted Aug 7, 2013@Chalkie19
Well that's strange... Can you try this version?
https://dl.dropboxusercontent.com/u/72835893/Plugins/MaxBans.jar
@chopstick121
Are you using /lockdown while the server is running? Are you editing the config while the server is running? Does the server have read permissions from the config file (If you're using a unix/linux/ubuntu OS)?