Merge pull request #761 from nallar/master

Don't call ChunkDataEvent.Load async. Fixes Xycraft ChunkDataEvent.Load handling.

Closes #604
Update to Forge 7.7.1.653
Update to Forge 7.7.1.654
Update to Forge 7.7.1.655

Now includes our deobfuscation fix

MinecraftForge/MinecraftForge@588bc8c8650416cbe3143307225a8d80a96e102b
Make Slimes fire EntityTarget events. Fixes BUKKIT-1408

Remapped by Srg2Source from Bukkit/CraftBukkit@d1b72c35a7a7f106a80fce5ba11179f8952936a2
When moving a misplaced chunk move tile entities too. Fixes BUKKIT-4092

When a chunk is being loaded the server checks to ensure the chunk's idea
of where it is located matches where it was located in the region file. If
these two values do not match the chunk's idea of its position is updated
and the chunk is reloaded. In vanilla minecraft this loading involves the
chunk's tile entities as well. With the change to loading player chunks
asynchronously we split loading tile entities to a separate step that takes
place after this check. Because of this tile entities are loaded with
invalid locations that result in trying to fetch block data from negative
or too large positions in the chunk's internal block storage arrays.

Because loading the tile entities is not thread safe we cannot return to
vanilla behavior here. Instead when we detect a misplaced chunk we just
edit the NBT data for the chunk to relocate the tile entities. This results
in them moving correctly with the chunk without having to actually load
them first.

Remapped by Srg2Source from Bukkit/CraftBukkit@7f49722f457dcc31f8cac8e011871ff1b7fd3306
Validate chunk data array lengths. Fixes BUKKIT-4093

If a chunk has somehow managed to save with arrays that are not 4096
entries long when reading them again we will get exceptions. Checking the
array length and resizing if needed is cheap so we should do this to help
avoid crashing servers due to this error.

Remapped by Srg2Source from Bukkit/CraftBukkit@13c74c16346c4610b59964b4b2f60d5120ed3627
Spigot patch update: Spigot Changes: Yet another CraftBukkit pulled patch.

EcoCityCraft/Spigot@165164f5ab311057efc9a05588231ec89642de2c

Note: this commit merely synchronizes our code with the upstream projects (Spigot and CraftBukkit)
Don't do physics updates in world generation. Fixes BUKKIT-3747

Remapped by Srg2Source from Bukkit/CraftBukkit@7fd3e344c04df99bd0f0066be2114799f6ef78c4
Update to Forge 7.7.1.656
Update README with simplified compilation steps
Add CrashReportCategory for diff visibility
Forge: Fix AIOOB in crash report stack trimming.

MinecraftForge/MinecraftForge@560931a14a325e0f76be09fbbe11c97d5b1d7461
Revert "Fix AIOOB in crash report stack trimming." Attempt at fixing #763.

This reverts commit d157a1eaac198075eef42a34b74eb639d5ab4112.
Update to Forge 7.7.1.660
Add option for warning on placing tile entities without entity tiles. See #689, #603, #470, #243

CraftBukkit logs and a warning and stack trace when setChunkBlockTileEntity()
is called on a block in the world which doesn't support tile entities. Vanilla
simply ignores this condition, without logging anything.

This commit adds a new configuration option to bukkit.yml, mcpc
warn-place-no-tile-entity, to switch between CraftBukkit and vanilla
behavior.

By default, this option is on (matching CB), since it can help detect
legitimate bugs where a tile entity is misplaced. But since vanilla doesn't
warn, you can set warn-place-no-tile-entity: false to reduce this log spam:

Attempted to place a tile entity ... where there was no entity tile!

See #603, #243, #303, #470, #407, #397, #596, #386, #34, #457, #689,
and #379, #153, #168, #6, #724.
Remove CrashReportCategory; with Forge update in next commit, fixes #763
Update to Forge 7.7.1.662
Update to Forge 7.7.1.665

Mostly client-side changes but includes:

MinecraftForge/MinecraftForge@06727b965eec64881c52cfa323841f85674a6958 Fix replaceable checks to work on blocks with a non-replacable material
MinecraftForge/MinecraftForge@c0d7e23c8d4a373422ba0c6f3f80c7fd69b742e4 Merge remote-tracking branch 'refs/remotes/origin/GuiIngame' [access transformers only]
Preload world crash report to unmask the real crash. Fixes #721.

Crashes from out of memory or StackOverflow can be masked by
NoClassDefFoundErrors, since the crash report classes
(CallableLvl1 and others) cannot be loaded. To solve this,
synthesize a dummy crash report on first world load.

This augments the Forge patch:
MinecraftForge/MinecraftForge@9a72d50dec7520d1d88551cba4e3aeaf3e606070 Early define CrashReport classes to combat invalid crash details.
which preloads most of the crash classes, but this commit also
preloads the world-specific crash report classes.