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/
@netherfoam
Hey,
just want to inform you, that your actual version on github maybe fixed my problem.
I am running it right now on our testserver and it seems to run perfect (and writes everything into MySQL).
Just deleting eg. an ban via in external application like a webside isn't working properly(is updatet after a server restart). But thats no problem ^.^
@netherfoam
Or you can make a separate command for the average joe. Example: '/banstatus'. This way you would have more options on what you want to give to regular players and what you want to give to the admins.
And for the reason that I came posting here. The warnings are still not working correctly. No error. Nothing. If you look closely at this section of my server log, you can see exactly what is happening.
I have no idea if it has anything to do with this error I have been getting on shutdown: http://pastebin.com/Pdn6RkAf
-Oh, and thanks for that link. Solved my banip problem.
@Chalkie19
Well, I don't know how to do this nicely.
What if I split the /checkban and /checkip command apart? /checkip is rather useless as it stands, with several other commands spitting out a users IP as a byproduct.
@netherfoam
Indeed I do. I understand if it's too much work. Just something a few people have asked for. No harm in asking. (unless your a serial bad suggestion killer)
@Chalkie19
Players can only do /checkban on themselves, unless they have permission (I can't remember the node off the top of my head). Thus only staff have access to anyones IP address, and players may access only their own IP addresses.
Do you want players to be able to check the ban status of other players? :|
Hey netherfoam,
Hoping to get what seems like a simple change to the /checkban system.
This changed is to show a simple and the normal checkban status like now, I like to keep a fairy open server but I will not release players IP's so I am unable to allow players to use the /checkban.
The change I propose is
Permission: maxbans.checkban
Shows Basically the first part of check ban
+-------------------------------------------------------------------------------+
User: Chalkie
Banned: 'Being bad at minecraft' (netherfoam)
Muted: False
Warnings: (0)
Whitelisted: False
+--------------------------------------------------------------------------------+
Then
Permission: maxbans.checkban.admin
Shows what you see now with /checkban
+-------------------------------------------------------------------------------+
User: Chalkie
Banned: 'Being bad at minecraft' (netherfoam)
Muted: False
Warnings: (0)
Whitelisted: False
+--------------------------------------------------------------------------------+
IP: 123.123.123.123
IP Banned: False
RangeBan: False
Users: 1
+--------------------------------------------------------------------------------+
Thanks.
@slayr288
That's weird.. Are there any errors in the console when you warn a player? I don't understand how it could not write the warning like that...
You can actually do this if you really want, use Bukkit.yml's aliases:
http://wiki.bukkit.org/Bukkit.yml#aliases
You can alias any command you like.
@netherfoam
Here you go. http://pastebin.com/fL7s1CKf
Also, I would like to add that '/banip' from vanilla minecraft still works. To avoid problems, is there anyway that you could alias '/ipban' as '/banip'? So that you could either type '/ipban <player> <reason>' or '/banip <player> <reason>'
@slayr288
May I see your config? Is your warn expirey time set correctly? An expirey time of zero will cause the warning to become invalid immediately, and thus deleted immediately.
@Sheeperia
Not currently, I can write some import export code, but it will take time for me to do it (I don't have very much time lately). If dynamic bans can export to vanilla bans, then you may be able to do that and then use /mbimport vanilla to import the bans. This wont transfer more exotic things like temp bans or mutes though.
Players do not get told on join about their warnings, they can (by default) do /checkban and it will display their warnings, amongst other info.
If another player joins from the same IP as someone who is banned, but not IP banned, staff arent told (I'm going to write this feature eventually, but it will default to off, I know I have IPs where there are over 100 often legit users from) - which could be real spammy! Instead, you can use dupeip for the time being, and it will highlight any banned users red, online users green, and offline users grey.
If a player tries to join from a banned IP (and fails) staff are notified if they have the permission node.
@netherfoam
This is what I was saying. http://i46.tinypic.com/1565011.png
Hello, I'm using dynamicban for now, but considering changing to this one.
DynamicBan stores all banned players in .yml files in separate folders. Is there a way to convert all that data, both banned players and warnings, to maxban's system?
The warning system looks perfect for my use. Does players get a message when joining the server telliing how many warnings they have, and what they are?
If you ban a player, and another player joins with the same IP, will it notify the staff with the maxbans.notify node?
I'm sorry if some of this was explained above, bit i didn't see it. I have not tested the plugin yet either, i just wanted to get these questions out before i try it tomorrow :)
@zSwayz
Silent it then? I can see where you are coming from as I often need to change perms to temps, but I am fine with how it is.
@netherfoam
Sure but not everyone needs to see that. ;)
@zSwayz
Isn't it simpler to unban them, and reban them with whatever settings you want?
@netherfoam
Would it be possible to add an /editban or /banedit so we can change bans to temp when appealed?
@slayr288
Try do /checkban <user>, and see if the user has any warnings? v1.5 warnings work on my spigot server fine :|
Config, too? :) Blank out passwords ofcourse. Use privatepaste.com or pastebin.com
Hey,
With spigot build #696 and Maxbans v1.5, the warns are not working correctly. When I warn a player, it shows the broadcast, but does not give the player the warning.
@GrillGuth
I promise you, it is not loading bans from thin air. Can you send me your config.yml file (blurr the passwords out)?
@netherfoam
I am realy sorry for stealing your time but I dont think so.
Here is my php-banlist using the same settings I used at the maxban config: http://www.minecraft-spielewiese.de/bans/ (its beta). It seems like I am banned but as you can see here http://server.grillguth.de:8123 I am online...
If you want I can send you my MySQL-Connection settings via PM and you can check yourselfe.
Well but maybe I am just doing a very stupid misstake dont know...
@GrillGuth
Well, if its loaded, then the bans are definitely there, and you are somehow looking at the wrong database or sql server