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 Oct 6, 2014@Minemarc98
It works 100% fine on 1.7.10
-
View User Profile
-
Send Message
Posted Oct 4, 2014Could you update the plugin to version 1.7.10, please ...
-
View User Profile
-
Send Message
Posted Oct 3, 2014@netherfoam
Oh, you're here already. Thanks for the quick answer! :-) +Like
-
View User Profile
-
Send Message
Posted Oct 3, 2014@glasseater8576
I use a program called Navicat, the database is in SQLite3 format. Navicat supports MySQL and SQLite (And a bunch more of SQL backends), have a google for it they have a free version somewhere.
-
View User Profile
-
Send Message
Posted Oct 3, 2014@ThisUsernameIsMine
Auto-dupeip will do exactly what you described. When a player logs in, auto-dupeip will report the alternate usernames which have logged in from the same IP last.
It does get a bit spammy though, with bigger servers. I'd recommend doing /dupeip manually on new player joins.
@Cryices
When I get time. When that is though, is a good question!
@Lilmacaroni
I'll see if I can fix that in the upcoming versions, but I'm not concerned. Having someone's IP address is really not that useful.
@glasseater8576
1. Make punishments you don't want broadcasted silent, eg add -s into the command. "/ban netherfoam -s griefing spawn" will cause a broadcast to be made only to players with the "maxbans.seesilent" permission.
Or, 2. Remove "maxbans.seebroadcast" permission (it is given by default so you must give a negation permission node) from players you don't want viewing the broadcasts. This makes all commands hide their broadcasts, and (in most cases) just sends the target player a message instead. Would recommend option 1 though.
@darkzmii
Try reset your mutes table or add a reason column type varchar length 100
-
View User Profile
-
Send Message
Posted Oct 3, 2014As with ban notifications; is MaxBans able to notify staff players whenever a player joins who has multiple names under their IP?
I also don't know what auto-dupeip does.
@Lilmacaroni
Same goes for /checkip ;-/
-
View User Profile
-
Send Message
Posted Sep 30, 2014When will this be updated for UUID's?
-
View User Profile
-
Send Message
Posted Sep 17, 2014@netherfoam
When doing /checkban [space] [TAB] you're able to view all IPs. You're also able to do this when you're a regular player without anyone maxban permissions.
-
View User Profile
-
Send Message
Posted Sep 13, 2014Hey!
How do I view bans without a database it just comes up like this: http://pastebin.com/AMyzNs7S Also, how do I make it so people cant see people being banned/warned etc. But they can see when they have been warned - Glass
-
View User Profile
-
Send Message
Posted Sep 13, 2014Problem with mute command mysql http://pastebin.com/H2eKYMjW
-
View User Profile
-
Send Message
Posted Sep 7, 2014I love the plugin. Customization is #1 for me :P
-
View User Profile
-
Send Message
Posted Sep 2, 2014@netherfoam
Oops, sorry, my message was actually adressed to you.
-
View User Profile
-
Send Message
Posted Sep 2, 2014@ArkticWulf
This database was automatically generated by your plugin, I have deleted many times and tried to regenerate it. Also, I have a huge amout of errors, while working with mysql
-
View User Profile
-
Send Message
Posted Aug 31, 2014@evan021601
You do not. Most servers have thousands of bans, there's generally no good use of sending a user 1k bans.
Use a SQL client to view the database such as Navicat. Google it.
-
View User Profile
-
Send Message
Posted Aug 31, 2014@guerocraft
Delete your database or remove your mutes table in it to fix that.
-
View User Profile
-
Send Message
Posted Aug 31, 2014Hello, Netherfoam would it be possible to add a banlist.yml for easy access to the banlist in the upcoming update plz and thanks :D
-
View User Profile
-
Send Message
Posted Aug 30, 2014@guerocraft
I suggest putting your error into a pastebin.
-
View User Profile
-
Send Message
Posted Aug 30, 2014Can u fix it? [16:29:07] [Server thread/INFO]: nvidia issued server command: /mute test [16:29:08] [Server thread/INFO]: [0;32;1mnvidia[0;37;1m muted [0;32;1mtest[0;37;1m for [0;32;1m[0;31;22mНарушение правил![m [16:29:09] [Server thread/INFO]: nvidia issued server command: /unmute test [16:29:09] [Server thread/INFO]: [0;32;1mnvidia[0;37;1m unmuted [0;32;1mtest[0;37;1m[m [16:29:33] [Server thread/INFO]: [0;33;22m[[0;32;1mClearLag[0;33;22m] [0;32;1m[0;33;22m0 [0;36;1mchunks have been unloaded![m [16:29:33] [Server thread/INFO]: [0;33;22m[[0;32;1mClearLag[0;33;22m] [0;32;1m[0;36;1mYou just removed 0 entities![m [16:29:38] [Thread-33/WARN]: java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such column: reason) [16:29:38] [Thread-33/WARN]: at org.sqlite.DB.newSQLException(DB.java:383) [16:29:38] [Thread-33/WARN]: at org.sqlite.DB.newSQLException(DB.java:387) [16:29:38] [Thread-33/WARN]: at org.sqlite.DB.throwex(DB.java:374) [16:29:38] [Thread-33/WARN]: at org.sqlite.NativeDB.prepare(Native Method) [16:29:38] [Thread-33/WARN]: at org.sqlite.DB.prepare(DB.java:123) [16:29:38] [Thread-33/WARN]: at org.sqlite.PrepStmt.<init>(PrepStmt.java:42) [16:29:38] [Thread-33/WARN]: at org.sqlite.Conn.prepareStatement(Conn.java:404) [16:29:38] [Thread-33/WARN]: at org.sqlite.Conn.prepareStatement(Conn.java:399) [16:29:38] [Thread-33/WARN]: at org.sqlite.Conn.prepareStatement(Conn.java:383) [16:29:38] [Thread-33/WARN]: at org.maxgamer.maxbans.database.BufferStatement.prepareStatement(BufferStatement.java:36) [16:29:38] [Thread-33/WARN]: at org.maxgamer.maxbans.database.SQLiteCore.flush(SQLiteCore.java:91) [16:29:38] [Thread-33/WARN]: at org.maxgamer.maxbans.database.SQLiteCore$1.run(SQLiteCore.java:115)
-
View User Profile
-
Send Message
Posted Aug 29, 2014@netherfoam
Alright that's awesome.
-
View User Profile
-
Send Message
Posted Aug 29, 2014@Lilmacaroni
Yeah, essentially I have to lowercase all usernames (Otherwise the system will think Lilmacaroni is a different player than lilmacaroni) and it's a bit of a nuisance to undo that.
However for the next version of MaxBans that I'm working on, I should be able to do this.