github pmmp/PocketMine-MP api/3.0.0-ALPHA6
PocketMine-MP 1.6.2dev-229 "Unleashed" with API 3.0.0-ALPHA6

latest releases: 5.21.1, 5.21.0, 5.20.1...
pre-release7 years ago

For Minecraft PE 1.1.0.55
Beginning of strict types, some performance improvements, lots of 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-ALPHA6. These changes are NOT yet complete.

Notable changes

Core

  • 32-bit support has been removed for consistency and performance reasons. (#984)
  • The Binary class now has strict types and type-hinting for safety reasons when writing data to network.
  • Fixed incorrect PC world format versions causing Mojang's official McRegion -> Anvil converter to reject PocketMine-MP-generated McRegion worlds.
  • Fixed ServerKiller does not work correctly on single-core machines.
  • AsyncTasks no longer leak memory after completion. (#922)
  • Fixed masses of console spam when a crash occurs and an NBT tag or EncapsulatedPacket was an argument somewhere in the call stack.
  • NBT ListTags now default to TAG_End if no tag type is specified instead of null.
  • Fixed /particle command crash when creating TerrainParticle or ItemBreakParticle
  • Player XpSeed is now restricted to the bounds of an int32 on all platform (since it is supposed to be saved as an IntTag, which is bounded to the range of an int32).
  • Player->close() now does its best to catch thrown exceptions and clean up after itself to avoid possible leaks and issues during the quit process.
  • Fixed AutoUpdater crashing the server when invalid data is returned by the updater host.
  • Changed updater host to https://update.pmmp.io
  • Changed crash-archive host to https://crash.pmmp.io
  • Fixed some issues with static properties not being included in memory dumps.
  • Fixed server crashing when crashing while creating a CrashDump.
  • Fixed silenced errors being reported in CrashDumps when a plugin uses exit() or die().
  • Fixed lots of bugs exposed by strict types.

Network

  • Chunk serialization and compression is now always done asynchronously to improve performance.
  • Level area-broadcasted packets and block updates are now sent in batches instead of individual packets to improve performance.
  • Workaround for packets sent with immediate priority being ignored by the client (#1026)
  • Fixed UUID encoding (players will no longer see themselves twice in the player list)
  • ResourcePackDataInfoPacket will now report the correct number of resource pack chunks.

Gameplay

  • Dropped items no longer bounce on partial blocks such as slabs.
  • Fixed hunger decreasing too fast.
  • Fixed server crash when vines are placed on some block faces.
  • Falling sand is no longer destroyed by grass and no longer destroys slabs.
  • Falling into water 1 block deep no longer causes fall damage.
  • Removed eye-height offsets causing spawned entities to appear in wrong positions on the client-side.
  • Arrows will now fly correctly towards targets and no longer spin round and fall flat when hitting a surface.
  • Implemented basic sky-light population on chunk generation and sky-light updating when blocks are changed in the world. This will be needed for proper farming.
  • Improved player movement (smoother, much less stuttery) and fixed several client-sided positioning bugs.
  • Fixed other players don't see teleport movement when teleporting to nearby locations.
  • Fixed player spawn points set using /spawnpoint not working.

API

  • Strict types are now enabled throughout the core code. See #969 and #993 for details.
  • Plugins can now specify the extensions attribute in plugin.yml to specify PHP extensions required for the plugin to function correctly. This may be useful where plugins require extensions which are not supplied by default with PMMP-supplied PHP binaries. (#903)
  • Added Vector3->asVector3(), Position->asPosition(), Location->asLocation() (#973). This is intended to provide an easy way to convert a descendent of one of these classes (such as an Entity) into an explicit Vector3, Position or Location.
  • Added the following events:
    • PlayerDataSaveEvent, which is called when a player's NBT data is about to be saved to disk. (#920)
    • UpdateNotifyEvent, which is called when the AutoUpdater receives information that a new PocketMine-MP version is available.
  • PlayerInteractEvent is now called with the left-click action when a player attempts to remove an item from an item frame.
  • NBT classes now have more strict type-checking in the constructors, Tag->getValue() and Tag->setValue(). ByteTags, ShortTags and IntTags will now throw an exception if the supplied value is outside of the range they can store.
  • Block constructors will now always retain the meta values passed in the constructor, fixes issues with crafting with recipes that required any-damage ingredients.
  • Added API methods Block->canClimb(), Entity->canClimb(), Entity->setCanClimb(bool), Entity->canClimbWalls() and Entity->setCanClimbWalls(bool) along with corresponding entity metadata flags.
  • Added API methods Block->getLightFilter() and Block->diffusesSkyLight() (used in sky light population).
  • Added /title command and API for resetting title durations.
  • Refactored some JSON-parsing-specific NBT code into its own class.
  • Added Server->broadcastTitle().
  • Item->setLore() is now fluent.

Don't miss a new PocketMine-MP release

NewReleases is sending notifications on new releases.