Chests are treated as single chests always, so there is a little
potential for interaction getting through (blockinteract.visible).
Snow is just treated as before, data-based height adjustment (to be
added as a model, as Bukkit supports getting the level in a generic way,
same for water).
* Reinstate itchy blocks being processed at all (MCAccessBukkit).
* Refine block dump: add non-air blocks with no flags set to missing.
* Adjust/re-add/alter various flags.
* Initialize fully solid (in terms of shape + passable) blocks
explicitly with full bounds and solid flags.
* Use MaterialUtil#addBlocks and BridgeMaterial#getAllBlocks where
appropriate.
* MCAccessBukkit(Base): don't touch fully solid nor fully passable ones.
First batch:
* Initialize blocks somehow, so no errors nor missing blocks happen
during startup.
Possibly Missing:
* There might be references of removed/renamed material (blocks/items)
throughout the code.
* Some blocks may behave different now/then.
Missing:
* Block#getData may not reflect (all?) properties anymore.
* Block shape getting is missing. Block shapes are now (potentially)
more complex to process. Concept might be to keep a double array for the
rough bounds, and add an (optional +- null) array of arrays for sub
shapes, if present (IBlockCacheNode). So a first rough update is more
simple/compatible.
Create PlayerData instances if events allow proceeding:
* AsyncPlayerPreLogin.
* PlayerLogin (schedule for removal if denied).
Update world data:
* PlayerLogin
* (PlayerJoin, ...)
Update player name and log:
* PlayerLogin
* PlayerJoin
(+) PlayerData.updateCurrentWorld -> only do something if the WorldData
instance has changed.