**For Minecraft: Bedrock Edition 1.9.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.6.0 - Compatibility with Minecraft: Bedrock Edition 1.9.0 - Removed compatibility with 1.8.0 - `Item->getCompoundTag()` is now `@deprecated`. - `Item->setCompoundTag()` now accepts NULL as a possible value. - `ItemFactory::fromString()` now accepts NULL for the `tags` parameter. # 3.6.1 - Fixed crashing when items with negative IDs are found in the inventory (caused by downgrading from dev builds). - Updated creative inventory and crafting recipes. - Fixed handling for some new blocks which magically appeared without appropriate implementations (extra meta values). # 3.6.2 - Fixed client-sided crash when upper-case letters appear in command names. - 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.6.3 - 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. # 3.6.4 - `NetworkStackLatencyPacket` unhandled debug has been silenced. - Fixed `Player->removeWindow()` removing GUI or crashing clients when removing a window which was not added. - Fixed packed ice dropping itself when mined without a silk touch pickaxe. - Fixed players not taking fall damage when falling off the side of a ladder when their AABB was intersecting with the ladder's full block area. - Fixed arrows reloaded from disk never despawning. - Fixed player XP not dropping on death. - Fixed player's held slot being out of sync when respawning. - Fixed items with different NBT being considered stackable in some cases by `BaseInventory->canAddItem()`. # 3.6.5 - Fixed stdout silence on crash if a crash occurs when PHP output buffering is enabled. - Fixed `RegionLoader` considering a range of invalid chunk coordinates as valid. - Fixed `RegionLoader` causing region header corruption when an oversized chunk was discovered. This was causing entire regions to be discarded next time they were freshly loaded. - Fixed performance issue loading old LevelDB worlds (from before MCPE 1.0) due to unmodified chunks being converted every time they were loaded. - Added new debug messages when a world takes too long (longer than 50ms) to complete a tick. - Debug messages are now logged when autosave kicks in (with time measurements), which helps debugging unexplained lag spikes. - Level "auto tick rate" anti-feature and its associated `pocketmine.yml` settings have been removed (see #2665). The settings will persist in old configurations, but will be ignored by this version and future versions. - The `/save-all` command now outputs custom (non-vanilla) messages informing the user how long it took to complete autosaving. - The word `level` has been replaced with `world` (where appropriate) throughout language strings and general user interface messages. # 3.6.6 - Fixed protocol argument types for commands. - Autosave debug message will now report in milliseconds when the time taken is less than 1 second. - Flatworld presets now allow `*` as a multiplier symbol (fixes PC compatibility). - Network runtimeIDs for blocks are now randomized to prevent things (like plugins) relying on them. - Updated NBT dependency to 0.2.7 for some bug fixes.