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/
Can i use the Plugin for a BungeeCord Network
@xRoyalFeeds
permission node: maxbans.notify
Except I think that when a banned player tries to join, it also generates a notification for everyone with that permission node
@netherfoam
is there a perm where people have to have to see the proxy msg?
@xRoyalFeeds There's a setting called 'notify' in the dnsbl config... set it to false.
is there a way where you can disable the proxy ip msg when some 1 joins
Great ban plugin !
@FabioZumbi12
You could have a look at EssentialsXGeoIP-2.0.1.jar and get the inspiration from that code or implement the abandoned code from IP-Check (IP-Check is out of date but you get the idea).
@netherfoam
Thanks. I just needed how are the csv files formats.
@dutchy1001
I need to make a method to unzip the file to use with the code (really easy). Thank you.
@dutchy1001
Woah, that's the exact file I chopped down originally. Nice find! http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
Basically if you delete columns A,B,D,E, that's the valid CSV format that the plugin will read
@FabioZumbi12
Would the geoIP files from this site help you, here
@FabioZumbi12
I can't find the file anymore unfortunately. If you read the code, you'll find that it was a CSV file in the format:
ip_address_as_integer, "country_name"
Sorted by ip_address_as_integer in ascending order. An example might be:
110.23.24.48 represented as an integer is 1847007280
113.83.53.41 represented as an integer is 1901278505
More info about decoding IP's here: http://www.aboutmyip.com/AboutMyXApp/IP2Integer.jsp
Therefore, if there are three entries in the CSV:
1847007280, "Australia"
1901278505, "New Zealand"
1931762443, "Japan"
You'd expect any IP addresses between 110.23.24.48 (inclusive) and 113.83.53.41 (exclusive) to be IP addresses from Australia. Any IP address 113.83.53.41 to 115.36.91.11 would be a New Zealand IP address, etc.
That's the best I can do for you, sorry! Perhaps someone will have geoip.csv floating around on their computer
@netherfoam
I created a pull request on your GitHub with all updates.
And where i find the file geoip.csv? I think is not anymore on your site.
@FabioZumbi12
I hope you can look into the issue I mentioned as this is probably not only effecting us.
Some extra info:
Any other info you need let me know and I hope I can help you in that way.
@dutchy1001
I get the plugin to update and fix bugs...but for now i only get the know bugs to fix like /tempban and ban times.
I will upload the updated code to the netherfoam GitHub.
@netherfoam
is anyone of the maintainers taking it over from you?
@dutchy1001
I'm no longer developing this plugin - including bug fixes.
It sounds to me like you're both describing two problems though, one is from not setting up spigot properly and the other sounds more like a bug
@netherfoam
We have the same issue as Pablo_M98 and had to ban ppl on each multiple servers from our bungee setup.
If you ban a player on a server that is not the main login server (hub or lobby) then you need to re-ban that player again.
If you have, as we do, the server setup that you login were you left then you need to ban every player on the server they were first banned on and the hub/lobby server.
Hope this helps finding the bug.
@Pablo_M98
You have spigot setup incorrectly. Read https://dev.bukkit.org/bukkit-plugins/maxbans/pages/notes-on-bungee/ and configure spigot to forward ip addresses.
Please, fix /dupeip, /ipban and /tempipban with sync mode and MySQL using BungeeCord and Spigot 1.10.
Thank you!
Could you add a /warnip ?