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.
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
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.
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.
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.
Changes Since Last Release
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.