**For Minecraft: Bedrock Edition 1.8.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. # 3.5.0 - Compatibility with Minecraft: Bedrock Edition 1.8.0 - Removed compatibility with 1.7.0 # 3.5.1 - Fixed internal server errors when attempting to craft. - `DataPacket` errors when writing to undefined fields are now more clear. - Fixed trees being able to overwrite the log parts of other trees. - Fixed `Player->sendForm()` not working during `PlayerJoinEvent`. - `Entity->setScale()` now explicitly requires a scale larger than 0. - Adding invisible `FloatingTextParticle` to a level no longer causes an error. # 3.5.2 - Updated some misc protocol magic numbers. - Fixed burning TNT setting hurt entities on fire when exploding. - `~` relative coordinates now work in the `/particle` command. - Various boring fixes to error stack trace reporting. - `Level->setChunk()` no longer deletes tiles and entities when replacing a chunk with itself. - Fixed a generator race condition causing rare appearances of half-trees on the client in freshly generated terrain. - `Attribute->resetToDefault()` now fits the default per the min/max bounds, fixing crashes when the bounds are changed to exclude the default. - Fixed a crash with LevelDB worlds when the `TAG_2D_MAPS` tag is missing. - Fixed `Utils::getCoreCount()` crashing on some Debian variants. # 3.5.3 - Rewritten documentation of `PlayerPreLoginEvent`, `PlayerLoginEvent` and `PlayerJoinEvent`. They are now much more detailed and no longer misleading. - Chest items block-picked from double chests will no longer place chests that crash the server when opened. - Ender chests now make the correct sounds when opening and closing. - Fixed Sign errors when a buggy or malicious client sent broken NBT with the wrong tags or wrong number of lines. - Resource packs with comments in the manifest will now load correctly. (MOJANG!!!) - Placement of unknown blocks is now disallowed. This solves a range of problems with invalid blocks in the world, such as #2260 . - Errors thrown during `PlayerQuitEvent` or other `Player->close()` errors will now crash the server instead of causing cryptic bugs later on. - Fixed large chunks (>= 1044476 bytes) becoming corrupted when saved in Region-based worlds - now an exception is thrown instead. - Reduced the range of exceptions caught during chunk loading. Now, only chunk corruption errors are caught, and anything else will produce a crash. - Removed catch-all block on chunk saving. Unexpected errors thrown during chunk save will now create a crash. - Fixed some asserts in packet decode methods. - `Attribute` now throws exceptions with more informative messages on errors. - Properly handled some remaining `Uninitialized string offset` bugs when decoding packets. - Fixed chunk updates taking several seconds to show up on the client. This bug was most apparent during generation and some world editing tools using asynchronous tasks. - Fixed CPU waste ordering chunks for non-moving players. # 3.5.4 ### Fixes - Fixed server crash when a block update occurs on a torch with corrupted metadata. - Added a hack to mitigate client-side right-click spam bug. This mostly eliminates spam of `PlayerInteractEvent` on right-click. - Players will no longer see commands they don't have permission to use in client-sided hints when typing a `/` in the chat window. - `Event->isCancelled()` and `Event->setCancelled()` now throw more informative errors. - Errors thrown during a network interface processing will now _actually_ crash the server. ### API changes - Deprecated `NetworkInterfaceCrashEvent`. Nobody should have been using this anyway. - Deprecated `Network->processInterface()` - Deprecated `SourceInterface->emergencyShutdown()` # 3.5.5 - Mobs no longer spawn with their heads facing a different direction to their bodies. - Added a console message when the crash strangler sleeps to stop crash spam. - Fixed crash in `/title` command `times` subcommand when not enough arguments were passed. - AsyncWorkers will now not be shut down on GC unless they have not been used for the last 5 minutes. This reduces lag spikes on garbage collection. - Fixed some unhandled error cases in `AddEntityPacket` encoding. - Fixed `LogicException` descendents being thrown from some packet decoding methods when encountering bad userdata. - Player network inventory transaction processing now catches more specific errors. - Fixed missing decode for `TakeItemEntityPacket`. - Fixed `/gc` and `/status` truncating memory statistics - now they report to 0.01 precision. - Global functions and constants are now imported to improve performance. - Fixed a typo in `pocketmine.command.op.take` description. - Ice no longer creates water when a creative player breaks it. - `spawn-mobs` and `spawn-animals` no longer appear in generated `server.properties` on a newly-installed server. - Added a hack to disable pre-spawn client-sided movement. - Assertions enabled warning now always shows when `zend.assertions` is not `-1`. The config option to disable this warning has been removed. - `/status`,`/dumpmemory` and `/gc` are now enabled by default. The `debug.commands` config option has been removed. - Crash dumps are now more thorough at catching plugin-related crashes. # 3.5.6 - Fixed `#`-commenting properties in `.properties` files not working. - `pocketmine.yml` now permits writing `worldname:` with no generation settings in the `worlds` section to force a world to be loaded. - Fixed Bow force being too low - now it's consistent with Minecraft Java (but not with Bedrock due to a vanilla bug). - Fixed `recursion detected` bug when encoding crashdumps in some cases. - Items with too-large NBT tags on network will now have their tags ignored when sending over network, instead of crashing the server. This is a workaround for a protocol bug which will be addressed in a future Minecraft release. - `/enchant` no longer crashes the server when out-of-bounds enchantment levels are used. - Fixed some crashes loading Region-based worlds when encountering unexpected EOF. - `Entity->fireTicks` is now protected (but accessible by magic method for BC purposes) and will now throw an exception when written to if the value is > 32767 or < 0. - Fixed Signs asserting on corrupted world data with more than 4 lines of text per sign. # 3.5.7 - Fixed several bugs in RCON packet receive that would allow an attacker to block or crash the RCON thread, denying service to other legitimate RCON clients. - Fixed RCON connections not working (timing out with no response) on some platforms. - Logins are now permitted to have up to 60 seconds clock drift on the `nbf` and `exp` timestamps in the login JWT. - Fixed XP orbs following players who switched to a location spatially nearby in a different world. - `Player->removeWindow()` now throws `InvalidArgumentException` instead of `BadMethodCallException` when trying to non-forcefully remove a fixed window ID. # 3.5.8 - Fixed player XP not dropping if a player was fast enough to respawn. - Player XP drop amount now matches vanilla (7x level points, incurs some loss of points for higher levels) - Fixed Doxygen configuration including test sources. - Improved performance of block-cache accesses. - Improved performance of random block-ticking. - Closure tasks will now show the correctly formatted name on timings. - Fixed a crash when a local update happens next to an `ItemFrame` with invalid metadata. - Fixed player being subscribed to broadcast permissions too early when permissions are modified before spawn. - Block-picking is now disallowed on unknown blocks. - Internal IP detection now works correctly on all platforms. - Fixed UPnP portforwarding not working correctly when multiple network adapters are installed. - Starting or stopping flight now resets fall distance and in-air ticks. - Fixed falling causing starvation. - Fixed crops consuming bone meal when fully grown. - Users are no longer able to avoid agreeing to the license by restarting the server. - Explosions no longer create broken double chests which crash the server. Existing chests affected by this bug will continue to crash. This will be addressed in a future release. - Cactus and sugarcane no longer grow through non-air blocks. - Fixed a memory leak in `setChunk()` when the `unload` parameter is true. - Generator will now crash if preset is invalid, instead of producing unexpected results. # 3.5.9 - Fixed a `setChunk()` bug introduced by 3.5.8. - Applied a hack to disable client-sided automatic regeneration. - `Level->getChunkPlayers()` is now deprecated. # 3.5.10 - Some internal `Level` functions are now correctly marked `@internal`. - Fixed splash potion distance being measured from player feet instead of eye height. - Fixed tall grass being unplaceable on dirt. - A debug message is now recorded when a chunk is loaded with no associated loaders. - Composer dependencies have been updated to fix bugs in some dependencies. # 3.5.11 - Fixed crashing when items with negative IDs are found in the inventory (caused by downgrading from dev builds). - Updated creative inventory and crafting recipes. # 3.5.12 - Fixed crash when too-large values are given to `/effect` for duration. - `/op` and other commands no longer crash when an invalid player name is given. - Startup time no longer includes the time spent in the setup wizard. - `TextFormat::clean()` is now UTF-8 aware, and will scrub any invalid UTF-8 characters from the given string. - Fixed `TextFormat::clean()` not fully removing ANSI escape codes in some cases. - Fixed Korean command arguments failing to parse. - `Sign->setText()` and `Sign->setLine()` now enforce that the given text must be UTF-8 text, or an exception will be thrown. - Sign text is now processed by `mb_scrub()` immediately after loading to remove invalid UTF-8 characters that could crash the client. - `Human->exhaust()` no longer underflows when the hunger attribute has a fractional value. # 3.5.13 - Added a hack to disable client sided AI for non-moving entities. This fixes items floating in water despite it not being implemented server-side yet. - Fixed max health not working as expected on respawn if changed by plugins. - Fixed Item Frame hardness (0.25 instead of 0). - Fire Aspect tools will now light TNT when right-clicked with. - Fixed incorrect nullable typehints on `TaskScheduler` return values.