MineBans
MineBans - The Fair Global Banning System
Put simply, MineBans is a global banning system for Minecraft servers. We offer a way for server admins to publish the player bans they make on their servers to our database. The owners of other servers can then use this information to decide if a player that just joined their server should be allowed to stay.
How Does it Work ?
When a player joins the server a summary of any previous bans they may have is downloaded from minebans.com and the following checks are done on the user
- Is the player on the local exception list, if they are let them join.
- Is the player banned from this server (global, local or temporary), if they are prevent the connection.
- Is the player banned from another server with the same owner, if they are prevent the connection.
- Is the player using a public proxy, if they are prevent the connection.
- Is the player using a Minecraft account that is known to be compromised, if they are prevent the connection.
- Does the player have too many bans from other servers, if they have prevent the connection. Each of these checks is fully configurable.
What About MCBans, MCBlockIt, Glizer, etc
The way I see it MineBans is nothing like the other systems available for a few reasons (feel free to judge for yourself though):
- Our ban reasons are fixed. This means that the plugin can collect supporting evidence for each ban. Ultimately this means instead of a single word, "xray" as the ban reason we can provide a full page of statistics and calculations. As the bans are backed up by data we believe they are much more trustworthy. (At the time of writing over 80% of our bans have supporting evidence)
- We don't track players, we only collect the necessary information from the server. There is no log of who logged in to a specific server or how long they were online.
- Less potential for abuse. Did you know the MCBans team could globally ban a player from all servers for no good reason, with MineBans there is no concepts of a system wide ban like this. Did you also know that the MCBans team can configure their plugin (without your consent) to broadcast a message of their choice when a player joins, this has previously been used for political messages unrelated to Minecraft. There is no such feature with MineBans. The compromised account feature is the only way that a player could be banned incorrectly and you are free to disable that feature if you do not trust the origin of the data.
Some Things you Should Know
- All moderators of the server will need an account at minebans.com. This might seem like an unnecessary pain but it allows us to hold a certain player responsible if the system is abused without having to take a drastic step like removing all of the servers bans from the database. It also will help to prevent abuse of the system as a valid Minecraft account is needed to sign up.
Installation
This is a summary of the information that can be found on the wiki
- Sign up for an account on our website
- Download the plugin from the files page and put the .jar in your plugins folder
- Run the server once for the config file to be created and then shut it down again
- Open the config.yml file and edit the api-key option so that it matches the value from the My Servers page on the website
- Give your admins and moderators the necessary permissions
Usage
The basic commands are listed here, for more information please see the commands page on the wiki. All commands can be used with no arguments to show usage information.
- /ban - Bans a player from the server. Requires the minebans.admin.ban permission.
- /unban - Removes any bans that a player currently has. Requires the minebans.admin.ban permission.
- /kick - Disconnects a player from the server. Requires the minebans.admin.kick.
- /exempt - Used to manage the exempt list. The exempt lists acts as a list of players that will be made exempt from the join checks meaning they can join even if they are over the servers limits. Requires the minebans.admin.exempt permission.
- /minebans - Provides various commands relating to the system.
Since the page needs some colour here is an example of an in-game lookup
The colours next to each reason denote that ban's severity. Limits can be configured for each ban reason and each severity.
For Developers
The plugin provides it's own API for other plugins to use, the features provided by this are documented in detail on the GitHub wiki page.
Contributing
Contributions to the project are very much welcome, if you have a feature that you want implemented and know a nice way to do it then consider forking the repo and submitting a pull request. These will be accepted as long as the following simple guidelines are followed.
- Do not edit the structure of the pom.xml file, feel free to add a dependency if you need it but the formatting and structure should not be changed.
- If you are exposing a new API method, add a JavaDoc comment to it, but don't over-comment internal code.
- Follow the existing code style, don't antagonise over every space though !
All dependencies that are used are now available from a public Maven repo, so you don't have to worry about building several other projects just to add a simple change any more.
Source Code
Dev Builds
Changes Since Last Release
Download
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
http://bukkit.jacekk.co.uk:8000/job/MineBans/
Ignore the message that was here before if you saw it, I didn't see the changelog. However, I downloaded the new version, and it's still saying 'a new version is available'
@SkyderEfterLyde
No problem :D Let me know if there are any problems with 0.14.
By far the best plugin out there, it just works, thx alot for it.
@2006charger
That is pretty much how it works in 0.14 I actually think it will be more useful, the system of tracking global alt use based on the IP address is pretty unreliable anyway. I added a line to the join info to warn you if the player that joined is using an IP that has previously been banned, it will also list the names that used the same IP.
Is there a way for the plugin to do that locally? ( Sorry I know nothing about plugin development, just throwing ideas out.) Perhaps having a list of banned players which also would have the last IP they had, and it could check if any new accounts share an IP with the local banlist. That probably won't help globally, but it'd help a bit, I think.
@2006charger
I'll try to come up with my own way of dealing with that that does not require me to log every server that people join.
@squeezer2k
I need to update for new CoreProtect. On it now :)
hi,
got the following output when starting server with minebans 0.13.1:
http://pastebin.com/Pnv7E6sz
using Spigot #150
regards
Alright, fair enough.
One other issue we run into a lot is we'd ban one user, and they would return with an alt, almost immediately. This was one thing mcbans had that I liked ( probably the ONLY feature they had that I liked) was a message telling us if a user has alts, and who has what alt accounts. This would be very necessary for the mods/admins who cannot check console for IPs.
And with this, you wouldn't have to implement an IP banning system. Yes, they could change their IP. But most users don't know how to do that. It's mainly the larger, more well-known grief teams that can do this.
@2006charger
You should be able to use tab completion with /ban and /kick, that doesn't work with offline players though. I was hoping to be able to rely on tab completion instead of partial name matches but the API for it is not there yet.
Sounds cool. One other thing I would like to suggest is adding a way to at least run /kick with a partial name. I.E. instead of typing complicatedPlayername148S3, you'd be able to use /kick play and it would kick the player with the really long name.
We get a lot of griefers that use the whole '1337 speak' thing, and it gets tedious trying to kick or ban them. I know with mcbouncer, kicks work with partial names ( Not bans though, these require typing the full name)
@2006charger
Currently there is not now, that will be added in v0.14 along with another feature which I think will be pretty useful, the ban tool so you can do a block lookup with a tool just like LogBlock and it will then otter to ban the player that last placed or destroyed a block there. Much easier than typing out long player names :D
So is there a way to add a reason to a ban without making it a 'global' ban? Right now, it seems if we want to keep it local, banned players won't see the reason they were banned. Just a generic 'you are banned' message.
@2006charger
The import command just locally bans all players that are already on the normal minecraft banned-players.txt list, if you can get access to a simple list of names that is the format of the .txt files in the MineBans folder so you could add them that way. I will be adding a better import command that looks for various banning plugins instead of just the default so it might be easier to just wait a few days and hope they don't come back :P
Got it to work, finally ( Seems we had to close browsers and retry from the start each time it failed.)
Now, a new issue - We have a large number of bans from MCBouncer we have accumulated over the last year. A lot are for major grief and spam, but I can't seem to import these into the new plugin. I have tried manually adding their names to banned-players.txt then using /minebans import, but it only imports 16 bans from who-knows-where.
@2006charger
Forget that, it looks like minecraft.net is overloaded, give it half an hour and try again :) Not much I can :(
@2006charger
Could you PM me one of the names that you entered so I can test ? It could have been that minecraft.net was having some problems.
WEll, this seemed like it would have been a nice plugin, but none of my mods (or me) can seem to make an account on the website. ( All of us got errors about our accounts not being premium, when they all are.)
@firecopy
That is meant to be possible by permissions but it looks like that feature got forgotten about, implementing now.
EDIT: I don't have the time to test it now but I'll try and upload tomorrow.
Is it possible to only enable a moderator to use local bans, instead of both local and global? *Ahh nevermind. I can simply just leave the api key blank.