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/
@LegndPowerdNube
You should read the features that will never be implemented part. "Ban weightings (If your mods are kicking/banning you, they should be demoted instead)"
You should make a bypass permission so that mods cant ban admins and what not. If admin has permissions maxbans.ban.exempt, they cant be banned!
Version 1.2 available here: https://dl.dropbox.com/u/72835893/Plugins/MaxBans.jar
@Adondriel
Ban appeal message has been added in 1.2
@Chalkie19
Possible fix for the SQLITE_BUSY on reload issue in 1.2
@Adondriel
I will not be adding custom ban messages. I may add an appeal message at the bottom soonish.
How do i customize the "you are banned" message? or add a new one? i need to tell them how to appeal.
@Chalkie
I store the players address (most recent only) when theyre offline :) so you can dtill ipban by name while offline :)
@netherfoam
Ahh, I thought I was not able to have the name as an IP address when using /ipban, this sounds fine then. Thanks, should have looked more into it before posting, and like you said the rare time I will need to do it and the player is not online I can just use the -s argument.
@Chalkie
I'm not sure about this. You can ipban a player by name using /ipban NewGuy101, and it will say in chat NewGuy101 was IP banned. You can ipban a specific ip via /ipban 127.0.0.1, and it will say 127.0.0.1 was banned in chat, but I rarely have a reason to ban a raw IP address?
If you want to make a command silent, add -s somewhere in the command. If you want players to not be informed of any announcements from maxbans, remove the maxbans.seebroadcast permission node
Also something I just noticed now. Can there be an option to allow all bans and unbans using IP's to either be silent or be masked ect 121.44.xx.xx I personally do not like giving out IP's even for banned players.
@Chalkie19
Hmm, I will have to look into that error tomorrow at a more reasonable hour...
Hmm. I could possibly add that. If you want a new line, you can always do \n in the ban reason. But yes, I will add that to the todo list.
@netherfoam
Yea I was just testing this on my test server, was like ermergawrd. Quote from SC2, "Hell, it's about time".
Tiny suggestion, Could we possible have a 4th line added in the ban message the can be configured in the config. Example why below
Disconnected by Server
You're banned!
Reason: 'Epic plugin'
By Chalkie. Expires in 9001 years
You can appeal this at www.xxxxxx.com/appeals
Edit:
Just tried doing a reload /mbreload, so I could update settings and color code and it Pooped on me.
Once this happens, you can bypass the ban.
@Chalkie19
Essentials is much better at handling this kind of thing now. (Thank god).
I run essentials and this on my server and have never had an issue.
@matthiasvd2
Thanks! :)
Great plugin
Has this been tested with essentials? I know last time I tried a custom ban plugin, essentials loved to over ride the ban message.
Example they would get kicked with the custom message, but when they tried to join they would get the default "Banhammer has spoken" essentials ban message not the custom one.
@netherfoam
Thanks. :)
@ryush00
/tempban NewGuy101 1 hour The cake is a lie!
Tempbans NewGuy101 for 1 hour with the reason "The cake is a lie!".
How to tempban? Please example command.
@EndCraftMC
Let me start off by saying ... -_-"
Fortunately, the last feature I just wrote lets me easily do this. I'll make it maxbans.seebroadcast, and will give players the permission by default. E.g. you'll have to strip the permission yourself using your permissions plugin, or edit the MaxBans plugin.yml inside the .jar file
@netherfoam
I was sort of hoping that to see the broadcast, without the "-s", you'd require a permission node. So like by default, only people who can see the punishment message would be OP, then by adding "maxbans.banbroadcast" (or whatever it may be) to the other groups, would allow them to see the broadcast of the punishment. If that makes sense? So pretty much having nothing to do with "-s".
@EndCraftMC
Okay in v1.1, I've added maxbans.seesilent as a permission node. Players with this node will see silent punishments.