**For Minecraft: Bedrock Edition 1.11.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 changes in this build. This changelog **does not account for protocol changes**. If your plugin uses the protocol, you're not shielded by API change constraints. # 3.8.0 - Compatibility with Minecraft: Bedrock Edition 1.11.0 - Removed compatibility with 1.10.0 # 3.8.1 - Fixed furnace smelting recipes not working. - Reduced legacy hacks dealing with `BatchPacket` to fix possible ID collisions. - Reduced release phar size by minifying JSON data blobs. - Moved some MCPE-specific JSON blobs to submodule. # 3.8.2 - Fixed --enable-ansi and --disable-ansi not being respected on threads. - Fixed a crash that could occur when decoding `AvailableCommandsPacket`. - Fixed a crash when loading worlds with entities with missing `Motion` NBT tag. - Fixed a crash when world time overflows signed int64 max. - Fixed world generators and providers being registered too late (this was causing plugin issues). - Updated RakLib version to get a security fix. - Fixed errors when custom clients fill the wrong information in `ResourcePackClientResponsePacket`. - Fixed `setImmobile()` getting overridden directly after `PlayerJoinEvent`. - Fixed air being breakable by creative players. - Fixed performance loss caused by bugs in the preprocessor. # 3.8.3 - Fixed infinite recursion when using `Entity->close()` during `EntityDespawnEvent`. - Fixed crash reports caused by folder plugins being reported to the crash archive. - Fixed spawning entities on unloaded chunks during spawn sequence (possible client crash cause). - Fixed `/time query` output message. - Fixed `Server->hasOfflinePlayerData()` being case-sensitive. - Improved error messages for skin validation in some places. - Fixed classic stonecutter hardness. - Fixed iron trapdoors being considered a valid furnace fuel. - Fixed apple dropping from leaves happening less frequently than intended. - Fixed tall plants like sunflower being replaceable by the top half. # 3.8.4 - Plugin load order is now randomised to remove the ability to implicitly depend on filesystem-specific ordering. - Packet logging in debug messages now uses base64 instead of hex (uses less space). - Array and string size are now shown in error stack trace logs. - Stack traces now render a maximum of 80 characters when making string parameters printable. - Improved documentation for some transaction classes. - Action order in inventory transactions is now randomised to prevent dependencies on any accidental or client-dependent ordering. Since the transaction system is specifically designed to avoid depending on order, this does not affect any core functionality. # 3.8.5 - Moved preprocessor to build/ directory. - Added documentation for `Server->getPlayer()`, `Server->getPlayerExact()` and `Server->matchPlayer()`. - `server.lock` now contains the PID of the currently-running server. - PID of server is now reported in the error message when attempting to run two servers from the same data directory at once. - Fixed sluggish playercount updating on MOTD. - Added new MultiRecipe UUIDs. - Added an extra field to `StartGamePacket` to resolve minor incompatibility issues on different 1.11.x patch versions. # 3.8.6 - Fixed `Entity->isNameTagAlwaysVisible()` not working. - Log messages are now cleaned of invalid UTF-8 sequences before emitting them. - Fixed negative integers being considered as strings for world seeds. - Fixed out-of-bounds access on invalid inventory data in player data saves. - Fixed crash when custom liquids have flow decays which aren't factors of 4. - Fixed `Entity->noDamageTicks` not working when the entity had no previous damage cause. # 3.8.7 - Improved documentation of `Player->getDisplayName()` and `Player::isValidUserName()`. - Fixed a bug in `SetScorePacket` decoding causing the entry list to always be empty.