=====      PREFACE     =====

This is my first plugin, keep that in mind. I can only hope that this will work accordingly on the majority of MC servers.
If this doesn't work, PLEASE be polite and try to be helpful. Try to include console errors (if any, please say so if there are none).
Also, it may be useful if you'd tell me what version of CraftBukkit you're using and version of Java if you know.
If you are a dev and you know how to do this better, please don't be rude, but I'm up for constructive criticism.

This readme file will be persistent and rewrite itself if it is deleted. I have it here in case you forget something about Blip
and find yourself with the need to look up the website, and I thought this file would be a bit more convenient in some cases.

This document is just to go over a few of the commands in a bit more detail since
I didn't want to include the mess of function and argument combinations in the "/blip" command.

This plugin was compiled with Java 1.6, but should work if you're using JRE1.6 or 1.7 at least.
When 1.7 gains more headway, I can recompile with it if necessary.

Huge thanks to Jacek from betterPHP for helping me with quite a lot of this plugin.
His site is http://betterphp.co.uk -- Go there for some great tutorials (way more than just Java) and very useful forums.

===== COMMANDS SECTION =====

-----   What to know   -----
Arguments wrapped in greater-than/lesser-than signs <> are required arguments
Arguments wrapped in Square brackets [] are optional arguments.
For example: /bkick <player> [message]
                       ^         ^
                required         optional
                
Do not include the symbols <> or [] in your arguments unless they are part of a name (if that's even possible).

Arguments show below that have multiple items inside seperated by the pipe symbol(|) are to be used one at a time. 
For example: /blip ip [name|IP] => Use name OR IP, never both.

With the exception for "/blist [users|ips]", the arguments wrapped in <> or [] are placeholders, not exactly what the argument should be.
For example: /blip ip [name|IP] => Should be "/blip ip herobrine" or "/blip ip 127.0.0.1"
In the case of /blist [users|ips], the command should be "/blist", "/blist users", or "/blist ips"

Arguments are not case sensitive. As far as the Blip is concerned, herobrine, HEROBRINE, and HeRoBrInE are all the same.

Firstly, the /blip command. Without any arguments, this returns the list of registered commands.

There are a few arguments you can append to this for more functionality:

-----     Commands     -----
- /blip ip
- - If there is no name or IP specified, it will return a list of IPs registered to your name.
- - As long as there are no arguments after "ip", this command will work for everyone except the console, even non-OP players.

- /blip ip [name|IP]
- - If a username is specified, it will return the IPs for the specified user. This only works for OPs.
- - If and IP is specefied, it will return the list of names for the given IP, also only for OPs.
- - This must be a valid IP, or the plugin will interperet it as a name.

- /blip aip
- - This will return all IPs for all users if the command sender is an OP or is the console.

The other functions of this plugin have their own commands with required and optional arguments.
If required arguments (wrapped in <> symbols) are not included, a how-to-use message will return.

- /bkick <player> [message]
- - Kicks the player and allows them to immediately rejoin.
- - The optionally specified message is displayed on the kick screen.
- - If the message is not specified, it uses "kickmsg" from the config.

- /bban <player> [message]
- - Bans the player, showing the optionally specified message.
- - If no message is specified, it uses "banmsg" from the config.
- - It is possible to ban offline users.

- /bunban <player>
- - Unbans a previously banned player.
- - This will not work if the specified player is not found in the bans list.

- /bbanip <IP> [message]
- - Bans the IP and kicks all users associated with the IP.
- - The optionally specified message is show to all those who are kicked after being IP banned.
- - This will not work if the IP address is in an invalid format.

- /bunbanip <IP>
- - Unbans a previously banned IP.
- - The IP specified must be valid and already banned or this will return an error.

- /blist [users|ips]
- - Lists are currently banned users and IPs if no arguments are used
- - If "users" is your argument, returns list of banned users.
- - Likewise, if "ips" is the argument, returns list of banned IPs.

=====  CONFIG SECTION  =====

-----   What to know   -----
None of the options in the config can be altered from the game via commands.
This is to prevent people who are spoofing admin names or who have otherwise illegitimately gained OP from doing much damage with this plugin
These values can only be changed by accessing the file direcly and modifying it from there.

Everything from here down is also included in the config.yml file, but I'll put it here as well in case some error causes the config.yml to remove comments.

-----  Config Options  -----
Friendly tips:
- It's easier to read this with a monospace font (Consolas, FixedSys, Courier New, etc)
- If you edit the config, be sure to follow the YAML format, otherwise, the plugin (or more) may break
Config explanation:
- kickmsg is what is displayed if you do not specify a message when you kick a player.
- banmsg is what is displayed if you do not specify a message when you ban a player.
- banjoinmsg is what is displayed when someone who is banned attempts to join the server.
- doombanmsg is what is displayed when somone is banned for trying to ban a user or IP on the doombans lists.
- exemptips is a list of IPs that will not be banned even if they attempt to connect with a banned user's name.
- exemptusers is just like exempt IPs, it will not ban that user for logging in from a banned IP.
- unbannableips is where you can put IPs that cannot be banned from console commands.
- unbannableusers is a list of users that cannot be banned using console commands.
- doombanusers is a list of names that will backfire if a user tries to ban them, in turn banning the user.
- doombanips, like the doombanusers, if someone tries to ban an IP on this list, they will be banned instead.
Notes:
- Ban messages may not work, and may be replaced instead with by, "The Ban Hammer has spoken!"
- exemptips and exemptusers will NOT unban currently banned IPs or users and will not prevent them from being banned with the ban commands.
- It is recommended to remove the unbannableips and unbannableusers before using this plugin heavily.
- - Nodes with no values under them can be listed like this: "unbannableusers: []"
- The unbannable config options cannot be altered from the console, it's intended to keep fake OPs from banning other admins.
- The doombans will ban ANYONE who attempts to ban a listed user or IP, regardless if they are an OP, on this list, or another list, except if a user tries to ban themselves.
- The plugin processes a ban in this order: self-ban? => doomban? => unbannable?
- - If an IP/Username is on the doomban AND unbannable list, it'll process as a doomban first.
- Doomban-listed users can only successfully be banned by the console.
- If you are lost at any given point, please read the Readme.txt (should be in the same folder as this file).
- This plugin was started from a tutorial by Jacek (from betterphp.co.uk), and heavily modified afterwards with much help from the betterphp forums.

=====        END       =====