Get the BlockState before changing the block. Fixes BUKKIT-3441
Fix entities traveling sideways. Addresses BUKKIT-3443

Original: Update mappings to correct 1.4.6 version.
Initialize entity data before spawning them. Fixes BUKKIT-3209

Vanilla does the initialize before spawning everywhere except in the
SpawnerCreature, our spawn event depends on this behavior to be
consistent.
Update CraftBukkit to Minecraft 1.4.7
Updated version to 1.4.7-R0.1 in pom.xml for Beta.
Updated version to 1.4.7-R0.2-SNAPSHOT for development towards next release.
Place beds with the correct data. Fixes BUKKIT-3447
Always call PotionSplashEvent. Fixes BUKKIT-3363

This change allows plugins to add recipients to a PotionSplashEvent
when it would have otherwise had none.
Improve the item meta deserialization code-style

Fixed the ItemMetaFireworkTest

Add set power unit tests for FireworkMeta
Add BlockEnderPortal for diff visibility
[Bleeding] Add experimental support for entity portal traveling
Fix broken null contract with Jukebox.setPlaying, Fixes BUKKIT-3429

The javadocs state that a null may be used to remove the currently
playing sound, however this causes a NullPointerException.

It also doesn't process registering the record correctly, along with
processing non-valid items.
Refactor processBlockPlace logic. Fixes BUKKIT-3406 and BUKKIT-3454

The previous logic was faulty since it lost the logic of "placing" the
block. It was also taking into account data that could have been
changed outside of the processing of this event, which is irrelevant
to the processing of this event.
Return the valid max value for piston direction. Fixes BUKKIT-2191

By returning the following value (7) we remove the need to special
case pistons in any way (other than the original purpose of this
check, which is to ensure pistons have valid data)
Reload ban files when reloading the server. Adds BUKKIT-3470
Compensate for allow-nether/allow-end as false; Fixes BUKKIT-3466

When either of those settings are false, the worlds are not loaded and
therefore will not be targeted for portal exits.  Existing worlds are
iterated directly to avoid defaulting to the first world if a direct
dimension match is not found.

Plugins must also specify exit from custom Bukkit worlds to comply with
original commit: https://github.com/Bukkit/CraftBukkit/commit/2dc2af0

This commit introduces a constant to clarify the dependency on the
CraftBukkit implementation of custom worlds having a dimension offset.
Call BlockPlaceEvent for skulls the same as other blocks. BUKKIT-3406

When the skull BlockPlaceEvent was added it was made so the event
would be called after all the data has been set, however this is a
behavior change that is inconsistent with other BlockPlaceEvents.
Instead, if people wish to get the block data they should schedule
a task.

Relates to: BUKKIT-3438
Properly calculate level cost for books. Fixes BUKKIT-3410
Preserve source block in mushroom spread event. Fixes BUKKIT-3354
Add BlockCocoa for diff visibility.