For Minecraft PE 1.0.0.16
API changes relating to closing Levels and anti-cheat, along with many bug fixes.
DISCLAIMER: THIS IS AN ALPHA SNAPSHOT. THIS BUILD IS NOT FEATURE-COMPLETE AND IS LIKELY TO BE HIGHLY UNSTABLE. WE ARE NOT RESPONSIBLE FOR NUCLEAR WAR, EXPLOSIONS OR CORRUPTION OF DATA RESULTING FROM USE OF THIS BUILD.
This build has breaking API changes, so the API has been bumped to 3.0.0-ALPHA3. These changes are NOT yet complete.
Changes
Core
- Added a hack to workaround client-side text duplication (TODO REVERT 52748fc)
- Crashdumps are now created in the
crashdumps
folder instead of being dumped into your server root directory. - Some tweaks for Anvil I/O for more performance in some circumstances (won't make much difference in heavily-built up worlds)
- Movement-checks and instabreak anti-cheats can now be disabled in pocketmine.yml (#287)
- EXPERIMENTAL LevelDB support is back, with support for MCPE 1.0 worlds. NOTE that LevelDB can be HIGHLY UNSTABLE and will segfault a lot. See #254 for progress.
- Added crafting data cache to reduce on-join lag spikes. (9c36e0c)
- Assertion behaviour is now configurable: the server will by default warn on startup if assertions are enabled, and assertion exception throws are now disabled by default. This can be configured under the
debug
section in pocketmine.yml.
API
- API version suffix for plugins is now non-case-sensitive.
- Type-hints have been added to Item::get() and some Item API methods. This is in an effort to combat some peculiar issues which arose from using null or wrong types.
- Added API to allow customising randomly-ticked blocks in Level.
- Added method
Level->isClosed()
to allow checking if a Level is still usable before trying to do stuff with it. Position->getLevel()
will now verify that the Level is usable before returning it, and if it is not will destroy the reference and return null. This is to help identify leaks with unloaded Levels.- Added API methods to allow controlling anti-cheat configuration per-player (#287) and added PlayerIllegalMoveEvent to allow plugins to cancel movement anti-cheat positives.
- Removed deprecated
Utils::getRandomBytes()
(use php7 random_bytes() instead) (085d1a1) - Moved LevelException, PluginException and ChunkException into more relevant namespaces (946d301)
Fixes
- Fixed CommandReader hanging on shutdown on Windows (#171)
- Fixed vanilla McRegion worlds getting corrupted (8902992)
- Fixed total server freeze when teleporting long distances
- Fixed anti-cheat false-positives when climbing ladders and a wide variety of other movement issues (8ea0352)
- Fixed shutdown memory leaks related to double chests (e4aa3d7)
- Fixed eating golden apples with full hunger
- Fixed long-string NBT encoding (longer than 127 bytes, length is a uvarint not a byte), fixed corrupted sign issues, fixed issues with unicode sign text
- Fixed players appearing under the world when sleeping.
- Fixed players continuing to burn in creative mode.
- Fixed players sometimes not dying properly after taking lethal damage due to food regeneration (441961b)
- Fixed a logic error in the basic generator preventing swamp biomes from generating (b566c4e)
- Fixed setting item custom name doesn't update player (0584681)
- Fixed bad lighting issues when importing a PocketMine-MP world back to vanilla Minecraft (946d301)