# 1.6.1dev-87 **For Minecraft PE 0.16.0.5 alpha** **THIS IS A PRE RELEASE. Do not use it in production unless you are sure you know what you are doing.** Only changes since the 1.6dev tag will be documented here. Changes between 1.4.1 and 1.6dev are far too extensive to document effectively. ## Core - New RNG, based on XorShift128 from the php-random library. This fixes issue with repeating terrain on 32-bit systems. _Note however that new generation into existing worlds will not be seamless._ - Block and Item IDs have been moved to interfaces for better consistency - Better method for synchronisation of client/server time (less packet spam) - Utils::getRandomBytes() has been deprecated in favour of php7's random_bytes() function. - `.dat` saving/reading can now be disabled in `pocketmine.yml` (set `player.save-player-data` to `false`) ## Gameplay/game features - Added Flower Pots - Containers can now be opened in creative - Trapdoors can now be placed without a supporting block ## API This release has API changes, bumping the version to 2.1.0. ### Entity metadata (0.16) Many changes have been made to entity metadata. Many true/false data properties are now entity status flags, such as NoAI, NametagVisible and various others. Entity status flags can be set using: `$entity->setDataFlag(Entity::DATA_FLAGS, Entity::INSERT_DATA_FLAG_NAME, true/false);` **Breaking** changes are detailed here. Additions are not documented. https://gist.github.com/dktapps/76b291b7a861762b54f7a8b834389883 **NOTE: It's strongly recommended to use provided API methods where possible instead of tampering with metadata directly.** ### AsyncTask API additions - Main thread local storage: Developers can pass any data including objects to the constructor of AsyncTask such that the data can be retrieved after the AsyncTask completes using the new `AsyncTask::fetchLocal()` method, or use the `AsyncTask::peekLocal()` method to get the data without removing it. - Progress updates: Developers can use the new `AsyncTask::publishProgress() method and override`AsyncTask::onProgressUpdated()` to handle AsyncTask progress information in the main thread. Refer to #1 and #100 for details. ### WeakPosition WeakPosition was added in 1.6.1 to fix bugs with unloading levels which have player spawn points set in them. This type of position holds a level ID instead of a direct reference. Use this when your position may outlive the level it is in. ### Removal of Item/NBT circular dependency Refer to #121 for details. ### Other - Added Player->sendWhisper() (#73). - Removed LargeExplodeParticle due to incorrect name - use HugeExplodeParticle. Added HugeExplodeSeedParticle and BlockForceFieldParticle (7314aaf7f7bdae582f674c085c7ae879985bf847) ## Fixes - Fixed the infamous hotbar spaz bug - Creative/spectator inventory now sends correctly - Fixed spectator flight controls - Fixed issues with items going past the end of the regular inventory - Fixed furnace client crashes - Fixed inventory windows for anvils and enchanting tables - Fixed kicked for walking on lily pads (#blameshoghicp) - Fixed a nasty entity-related memory leak on chunk unload - Fixed sleeping players floating above beds and teleportation of sleeping players. - Fixed a bug in Level::updateAround() where only one block would update - Fixed some slab placement issues (#31) - Fixed crash loading 1.11 worlds (#32) - Fixed broken `--disable-readline` command-line option (#34) - Fixed world unload crash when players have spawnpoints set in that world (#24) - Fixed start.sh detection of system PHP binaries (#66) - Fixed anvil rotation when placed and variant drops (d696049a0ad5e3b878a8f902e4ef75f19ec8cecc) - /timings command is now more verbose about paste errors (#95) - Fixed server crash at shutdown when RCON is enabled (#101) - Fixed server name is always "Minecraft: PE Server" when running setup wizard (92bd1a755d4b171b687538db83893b9bd9c70420) - Fixed CraftItemEvent->getInput() does not return used items (7eb9530346e953d1555623ff871086f85447b6c6) - Fixed useless ServerKiller (#122)