Add leash API.  Adds BUKKIT-4459 and BUKKIT-4583
Use player as point of reference for min volume. Fixes BUKKIT-4640

When the minimum volume is being used because the distance is over a
threshold, the unit vector delta should be added to the player's
location, instead of where the command specified location.

This change makes the player's location the point of reference for
playing sounds when distance to volume scale is lower than minimum
specified volume.
Pulling all pending Bukkit-JavaDoc changes
Updated version to 1.6.2-R0.1 in pom.xml for Beta.
Updated version to 1.6.2-R0.2-SNAPSHOT for development towards next release.
Relax generic types for ConfigurationSerialization

The method signatures are unnecessarily strict for the generic signatures.
This change may cause a compile-time error for extending classes overriding
methods, but no byte signature or compile time call signatures change.
Add ConfigurationSerializable-Serializable compatibility. Adds BUKKIT-4662

This commit adds a comaptibility layer for use between
ConfigurationSerializable and Java Serializable, such that when using the
Bukkit object streams, any ConfigurationSerializable acts as if it
implements Serializable for purposes of that wrapped stream.

Included are a set of unit tests for the stream with a check for backward
compatibility across versions.
[BREAKING] Use event class instead of event for timings. Fixes BUKKIT-4664

TimedRegisteredListener uses a reference to the first event fired. This
causes a memory leak in the server for any references that event has. This
changes TimedRegisteredListener to only store a reference to the class of
the event.

This change is intentionally a breaking change, as it is an obscure part
of the API. A non-breaking change would require the leak to be maintained
or an immediate update for any plugins using the method, as it would be an
indirect break.

A unit test is also included to check behavior of shared superclass
functionality.
Check null before grabbing metadata owning plugin. Fixes BUKKIT-4665

MetadataStoreBase throws a NullPointerException when passed a null value
for setMetaData. The intended behavior is to throw an
IllegalArgumentException. This commit changes the value's null check to
occur before referencing the owning plugin of a value.
Add missing materials to Step. Fixes BUKKIT-4074

When Minecraft 1.4.6 was released, Nether Brick texturing to steps
was added. Minecraft 1.5 added Quartz texturing to steps. When Bukkit
was updated to these version the textures for steps were not applied.

Currently it is not possible to set the texture of steps to quartz
or nether brick. This commit fixes that by adding the respective values
to the allowable materials list.
Fix missing closing bracket in addEnchantment. Fixes BUKKIT-4126

Prior to this commit the message would display as "...(given #, bounds
are # to #". This commit changes that by adding the missing bracket to
the end of the statement. This is strictly a visual error.
Use command block's world for /gamerule. Fixes BUKKIT-3274

In vanilla, gamerules are global, across all worlds. Maps created for
vanilla that use command blocks expect this behavior, which is broken
when they are placed on a world that is not the default world (world #0).

This commit changes that by using the command block's current world when
executing the command, forcing the game rules executed to be executed in
the world the command block is currently in.
Add source encoding to the maven compiler plugin.

This change adds the source encoding to the maven compiler plugin, which
will strictly enforce build consistency on multiple platforms and address
possible compilation issues on some of the source files. The source
encoding unintuitively is system-specified by default.
Deprecate magic values
POM Changes
Measure Timings Duration
Timings Paste Command
Enchanced Timings
Add PlayerItemDamageEvent
BungeeCord Support