Forward exceptions to log4j, cleanup logger handling. Fixes BUKKIT-4948
Handle JUL logger formatting
Make console work on Windows again. Fixes BUKKIT-4956

Something the log4j ConsoleAppender does makes the console work correctly
on Windows. After trying to pull pieces of it out and run them manually
I decided to just put the appender back. We now once again start with the
ConsoleAppender then remove it immediately after starting.
Correctly send player names for the tab list. Fixes BUKKIT-4925
Handle ChatColor-ending messages FIXES BUKKIT-4924

Now adds the component upon creation, eliminating issues where the
created component was discarded.
Fix fishing ignoring event experience.
Fix missed doors diff. Fixes BUKKIT-4908

l previously was the block id, however Minecraft's refactoring means that
the method is now passed a Block reference rather than the id.  l is now
the data value of the block, so the block retrieved with that value is not
the correct block to be testing.
Add ConsoleAppender from log4j for diff visibility
Catch all exceptions in jansi initialization. Fixes BUKKIT-4936

Both log4j and our own jline/jansi initialization attempt to catch
errors caused by jansi's use of native libraries. However both of them use
the Exception type which does not catch all errors. On Windows Server 2008
R2 Enterprise without installing extra software the required C++ libraries
are not available which causes an error that does not extend Exception. To
ensure we catch all errors I've changed both of these to catch Throwable
instead which gets us a working console minus jansi functionality.
Correctly drop BlockBreakEvent experience. Fixes BUKKIT-4942

This was a missed diff from the update.
Use correct packet data for toggling flying. Fixes BUKKIT-4989
Use strict lookup for op permission refresh. Fixes BUKKIT-4698

Adding or removing operators was mistakenly using a loose player lookup
method, which would cause a permission refreshes on an online player whos
name starts with the name of the (offline) opped player.

Add/Remove op operations are exact name match only and the permission
refresh will behave the same way.
Added RecipeBookClone from nms for diff visibility
Fix written books crashing the server. Fixes BUKKIT-4945

CraftBukkit modifies the IRecipe interface, adding new methods, so all
classes that implement IRecipe need to be imported and modified to add the
new methods.

Extending ShapelessRecipes implements the added methods and allows
RecipeBookClone to work with the Recipes API in a way that is consistent
with similar recipes, even if the recipe information present in the API
isn't technically correct.
Fix BlockCanBuildEvent returning null. Fixes BUKKIT-4972

A Block object is now passed in place of the previous id value, so the
obfuscated name for all subsequent arguments was shifted.  As such,
BlockCanBuildEvent was using the incorrect values for both the material
and the location of the event.

This is corrected by swapping the values into the correct order and
providing an id based upon the Block passed into the method.
Maintain old setType method in WorldGenerator. Fixes BUKKIT-4915

WorldGenerator setType and setTypeAndData have their arguments changed to
add in support for CraftBlockChangeDelegate, which changes the method
signature. This change in the method signature breaks any WorldGenerators
that aren't modified to use CraftBlockChangeDelegate.

This commit fixes the issue by readding the old method and maintaining the
CraftBlockChangeDelegate method.  This makes it so that there is a
compatible method for both  CraftBlockChangeDelegate WorldGenerators and
unmodified WorldGenerators.

Additionally, this commit reduces and corrects the diffs in
WorldGenerator, moving the fix for layering violations to
CraftBlockChangeDelegate.
Try to detect when to disable jline automatically. Fixes BUKKIT-5028
Finish kicking player before letting their clone in. Fixes BUKKIT-4960
Correctly validate map colors. Fixes BUKKIT-4984

The validation check in CraftMapView.render(CraftPlayer) filters out any
values less than 0. As of Minecraft 1.7, -128 through -113 are valid colors,
so filtering them out prevents some of the new colors from being sent.

This commit fixes the issue by adjusting the validation check to include
any values less than or equal to -113.  As the minimum value for a byte is
-128, no invalid colors are included.
Add new fishing enchants. Fixes BUKKIT-5035