From 5c63e06b0f5267a6e45e7f912f8acf8621175892 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 1 Jun 2020 14:57:27 +0100 Subject: [PATCH] piece together a changelog for release --- changelogs/3.13.md | 111 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 changelogs/3.13.md diff --git a/changelogs/3.13.md b/changelogs/3.13.md new file mode 100644 index 000000000..470fdb4fc --- /dev/null +++ b/changelogs/3.13.md @@ -0,0 +1,111 @@ +**For Minecraft: Bedrock Edition 1.14.60** + +This is a feature release, containing various minor API additions, deprecations and a few minor features. + +### Note about API versions +Plugins which don't touch the protocol and 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. + +**WARNING: If your plugin uses the protocol, you're not shielded by API change constraints.** You should consider using the `mcpe-protocol` directive in `plugin.yml` as a constraint if you do. + +# 3.13.0 +## Core +- PHP 7.3.0 or newer is now required. +- Player movement processing has been revamped. It's now more tolerant of network lag and doesn't have as many problems with falling. + +## User Interface +- `/time` now supports additional aliases `noon`, `sunset`, `midnight` and `sunrise`. +- Removed warnings when a plugin registers a handler for a deprecated event. Since this warning is developer-focused, and too specific to be useful, it just caused annoyance and confusion to users who didn't know what it meant. + +## API +### General +- It's now possible to require a specific operating system using the `os` directive in `plugin.yml`. More information about this directive can be found in the [developer documentation](https://github.com/pmmp/DeveloperDocs). + +### Player +- `Player->resetItemCooldown()` now accepts a second parameter, allowing plugins to provide a custom duration. +- The following methods have been deprecated and have recommended replacements: + - `Player->addTitle()` -> `Player->sendTitle()` + - `Player->addSubTitle()` -> `Player->sendSubTitle()` + - `Player->addActionBarMessage()` -> `Player->sendActionBarMessage()` + +### Event +- The following methods have been deprecated: + - `EntityDespawnEvent->getType()` + - `EntityDespawnEvent->getPosition()` + - `EntityDespawnEvent->isCreature()` + - `EntityDespawnEvent->isHuman()` + - `EntityDespawnEvent->isProjectile()` + - `EntityDespawnEvent->isVehicle()` + - `EntityDespawnEvent->isItem()` + - `EntitySpawnEvent->getType()` + - `EntitySpawnEvent->getPosition()` + - `EntitySpawnEvent->isCreature()` + - `EntitySpawnEvent->isHuman()` + - `EntitySpawnEvent->isProjectile()` + - `EntitySpawnEvent->isVehicle()` + - `EntitySpawnEvent->isItem()` +- Added the following API methods: + - `EntityDeathEvent->getXpDropAmount()` + - `EntityDeathEvent->setXpDropAmount()` +- `PlayerDeathEvent::__construct()` now accepts a fourth (optional) parameter `int $xp`. +- `EntityDeathEvent::__construct()` now accepts a third (optional) parameter `int $xp`. + +### Inventory +- The following classes have been deprecated: + - `Recipe` +- The following methods have been deprecated: + - `CraftingManager->registerRecipe()` + - `Recipe->registerToCraftingManager()` (and all its implementations) + +### Item +- New `Enchantment` type ID constants have been added. +- `ItemFactory::fromStringSingle()` has been added. This works exactly the same as `ItemFactory::fromString()`, but it has a return type of `Item` instead of `Item|Item[]` (more static analysis friendly). + +### Level +- Added the following API methods: + - `Position->getLevelNonNull()`: this is the same as `Position->getLevel()`, but throws an `AssumptionFailedError` if the level is null or invalid (more static analysis friendly). + - `Level->getTimeOfDay()` +- The following constants have been changed: + - `Level::TIME_DAY` now has a value of `1000` + - `Level::TIME_NIGHT` now has a value of `13000` +- Added the following constants: + - `Level::TIME_MIDNIGHT` + - `Level::TIME_NOON` +- The following types of particles now accept optional `Color` parameters in the constructor: + - `EnchantParticle` + - `InstantEnchantParticle` + +### Network +- Added the following API methods: + - `RakLibInterface->setPacketLimit()` + +### Scheduler +AsyncTask thread-local storage has been improved, making it simpler and easier to use. +- `AsyncTask->fetchLocal()` no longer deletes stored thread-local data. Instead, the storage behaves more like properties, and gets deleted when the AsyncTask object goes out of scope. +- `AsyncTask->peekLocal()` has been `@deprecated` (use `fetchLocal()` instead). +- Notices are no longer emitted if an async task doesn't fetch its locally stored data. +- The following methods have been deprecated: + - `AsyncTask->getFromThreadStore()` (use its worker's corresponding method) + - `AsyncTask->saveToThreadStore()` (use its worker's corresponding method) + - `AsyncTask->removeFromThreadStore()` (use its worker's corresponding method) + +### Utils +- The following functions have been deprecated and have recommended replacements: + - `Utils::getMemoryUsage()` -> split into `Process::getMemoryUsage()` and `Process::getAdvancedMemoryUsage()` (not 1:1 replacement!!) + - `Utils::getRealMemoryUsage()` -> `Process::getRealMemoryUsage()` + - `Utils::getThreadCount()` -> `Process::getThreadCount()` + - `Utils::kill()` -> `Process::kill()` + - `Utils::execute()` -> `Process::execute()` +- Added the following constants: + - `Utils::OS_WINDOWS` + - `Utils::OS_IOS` + - `Utils::OS_MACOS` + - `Utils::OS_ANDROID` + - `Utils::OS_LINUX` + - `Utils::OS_BSD` + - `Utils::OS_UNKNOWN` +- Added the following API methods: + - `Config->getPath()` + - `Utils::recursiveUnlink()` + - `Terminal::write()` + - `Terminal::writeLine()`