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/
Just to point out that warnings are still not writing for me.
@netherfoam
Honestly I don't care about the auto complete part, just an option to stop the massive list of names that pop up in chat lol.
@Chalkie19
So you want tab to autocomplete online players only, but still have the original autocomplete code that was there? Cool, Ill see what I can do. Im not going to be home for a few days, but I have a uni break soon.
@netherfoam
I just am Hoping for an option to stop that. No other plugin but MB does it, it's why I assume MB does not the server software.
I decided the best way for me to show what I mean is with a video. First command I do is /eban b *Press Tab* (alias of ban for essentials) This only shows the names online that start with B as well as auto completes the first one in alphabetical order.
Next I do /ban b *Press Tab* and Poof all the names that Maxban has with b pops up in chat and nothing is auto completed.
The auto complete is not the main problem it's the massive list of names in chat.
http://www.youtube.com/watch?v=bekD1tWCET8&feature=youtu.be
@Chalkie19
So, you want the same internal autocomplete... You just want less names for tab autocomplete? (There's no API to avoid sending the usernames... It has to be sent to the client to be in the autocomplete option for pressing tab) So... Say, only the first match for what you are typing?
@netherfoam
I think I am not telling you what I mean well.
Example JackT4he4Lee5t1 joins the server and spams. I type in /ban jack *press tab* to auto fill JackT4he4Lee5t1 and every name with jack in it pops up in chat.
This is not for when you just do /ban jack *enter*
@Chalkie19
I don't think I need to, I'll just elaborate on how the autocomplete works:
So.. are you still sure you want this? Because /ban jack (while jackaroo is still online) will ban jackaroo, even if jacka or jackb has joined the server, but isn't online currently)
I could possibly see about limiting the results from hitting tab though.
@netherfoam
Can we please, please, please, have an option to disable the auto complete of offline names. I can't tell you how many time I have gone to ban a spammer, advertisers ect and put a few of their first letters press tab and POOF chat disappears and is full of offline names. Ever worse when I am tired and forgot how to spell the name.
I personally have not come across a time where I did not know a offline players name and needed to auto complete it, even then I have to pretty much type the full name for it to complete and not give me a chat full of names.
Thank you :)
@weather11guy
No, you have a different issue. His issue is that database queries are buffered, your issue sounds like another plugin is interfering. Can you send me your config, a startup log from maxbans, and replicate the bug yourself with a screenshot, as well as a screenshot of the result of a /checkban command on the user? Also plugins list if you can, as well as any messages that appear in the console when you /ban the player
@zSwayz
Bans should be updated 30 seconds later or so after the fact. This will be changed for mysql in the next version though.
Alright i noticed when using mysql for bans it's not updated until the server either restarts or command "/mbreload" is used. Maybe i'm doing something wrong?
@XtenDvas
I'll check that out. Thanks :)
@netherfoam
Either your's or slayr288's idea sounds great.
@zSwayz https://github.com/ext4/MaxBansBanlist
My version of PHP BanList available here.
Feel free to use it.
@johnbrasil
Here's a patch for the issue:
https://dl.dropbox.com/u/72835893/Plugins/MaxBans.jar
I won't release this version on bukkit yet, I have a few things to modify before I do release 1.6 properly.
@johnbrasil
That will be in the next version.
@Sheeperia
Ill add a ticket for it on github, I should be able to get around to it on friday or the weekend
@zSwayz
Some have tried, I don't know anyone that's released a version though
Hello.
My server are mysql, and all configurations is right. And aways when u turn off my server, gives this error:
http://pastebin.com/vrS7Q7u3
aways aways...
@netherfoam
Sounds good, let me know when you have finished the import export code, and i'll switch to your plugin immediately. Thanks :)
Has anyone managed to get a banlist.php page working for this? I'm trying to get one up but don't know loads about php and mysql :c
@GrillGuth
Ohh, excellent. I havent actually tested the github version, I'm just trying to tidy code up amongst my projects.
If you want to delete bans, youd need to setup a syncserver. Something I havent explained very well yet, but I wrote a page on it here or on github somewhere. You need to use sockets to do it though.