**For Minecraft: Bedrock Edition 1.7.0** ### Note Plugins compatible with any previous 3.x.y version will also run on these releases and do not need API bumps. Plugin developers should **only** update their required API to this version if you need the bug fixes in this build. # 3.3.0 - Compatibility with Minecraft: Bedrock Edition 1.7.0 - Removed compatibility with 1.6.0 - `Player->sendForm()` now throws a proper exception when failing to JSON-encode `Form` objects given to it. - Fixed crash when handling later packets in a batch when an earlier packet triggered termination of the player's connection. - Fixed a race condition causing progress updates in `AsyncTasks` to be lost when published near completion. - Fixed bad decoding for some packets with unsupported structures. - Crash dumps no longer report 20 empty lines when an error occurs in `eval()`'d code. - `pocketmine/nbt` dependency updated to `0.2.2` to fix bugs (see NBT repo for changelog). # 3.3.1 - Chunk ticking no longer occurs in chunks which have an adjacent unloaded chunks, fixing things like grass ticking triggering unintentional chunk loading. - Fixed some lighting propagation issues where step count is the same but light level is different. - Fixed full-chunk light repopulation producing broken lighting when the generator hasn't been registered on a worker. - Fixed a missing field in `MoveEntityDeltaPacket`. - Added client-sided rate limiting for crashdump reporting to mitigate involuntary DDoS of the crash archive. - Fixed a bug in `start.cmd` where quotes would appear around the "couldn't find installation" message. # 3.3.2 - Added a network-layer check for item NBT size to avoid unexplained client-sided crashes due to length overflow. - Fixed some desync bugs with double chests when one half of a double chest is unloaded. - Anonymous class timings will now have a cleaned path for the identifier relative to the plugins directory. - Anonymous class timings now render correctly on timings.pmmp.io. - Fixed empty garbage subchunks not getting removed from long-life chunks. - `start.ps1`, `start.sh` and `start.cmd` no longer recognize source-code installations. Since source-code installations should only be used by developers who know what they are doing anyway, this was considered unwise to keep. - Fixed a bug/oversight in network chunk preparation that caused chunk prepare to be 4x slower than necessary. - `Chunk->fastSerialize()` now doesn't serialize useless data (data is omitted based on chunk flags). This significantly reduces the amount of useless data getting copied for generation, population and light calculation. - `TaskHandler->cancel()` was incorrectly marked as `@internal` in 2014. This has been fixed. Plugin developers should in fact prefer `TaskHandler->cancel()` since it does not require a task to have a circular dependency on its own executor. # 3.3.3 - Development build error messages are now more user friendly. - Fixed meta-only changes not getting saved correctly in `SubChunk->setBlock()`. - Server will now sleep for up to 120 seconds on a crash if the uptime was less than 120 seconds. This delay is intended to reduce crash archive spam and can be skipped by the user if attended by pressing CTRL+C. - Fixed preprocessed builds sometimes having `new ` calls treated as function calls. - Fixed a rare corruption case where player data could be written incorrectly due to a race condition. - `DataPacket` will now throw errors when attempting to read/write nonexisting fields to make it easier to debug protocol change errors. # 3.3.4 - Fixed an undefined `DataPacket` field making the previous release unusable.