github pmmp/PocketMine-MP api/3.0.0-ALPHA9
PocketMine-MP 1.7dev-318 with API 3.0.0-ALPHA9

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

For Minecraft: Bedrock Edition 1.2.0.81
New skins API, new CompoundTag API, performance improvements

This version is an alpha snapshot, is NOT FEATURE COMPLETE and may be unstable. Please use our issue tracker to report bugs.

Please do not create issues for missing gameplay features.

This build has breaking API changes, so the API has been bumped to 3.0.0-ALPHA9. These changes are NOT yet complete.

Notable changes

Core

General

  • Minimum PHP version has been upped to PHP 7.2.0RC3 due to more bugfixes needed for ZTS mode.
  • Fixed PocketMine.php compatibility with PHP 5 (needed for incompatible PHP version messages to work correctly)
  • Incompatible PHP version message on startup is now more clear and tells the user what PHP version they are attempting to use.

Block

  • Fixed a crash when Leaves2 is mined with a damage value > 1

Entity

  • Fixed debug spam when entities are created over zero tick diffs.
  • Entities which are saved when on fire will now appear on fire when they are next loaded.

Level

  • Fixed performance degradation in Level->getBlock() which had very widespread effects.
  • Fixed performance degradation with chunk ticking caused by expensive subchunk empty checks.
  • Difficulty levels can now be set per-world, and can be set in pocketmine.yml using the difficulty key under the worlds section per-world.

Network

  • Chunk-packet caching is now non-optional, offering better performance (#1448)
  • Compression level 0 in pocketmine.yml is no longer allowed and will be reset to the default if used.
  • Fixed a crash which occurred during login verification due to trying to read a nonexistent public key
  • Fixed ridiculous network upload & download statistics when the title ticker was disabled
  • Removed a redundant asserting function in packet reads which was degrading performance.

API

General

  • Added \pocketmine\NAME constant.

Block

  • Basic support has been added for separation of block bounding boxes and collision boxes. Block->getCollisionBoxes() has been added.

Command

  • Added API method SimpleCommandMap->unregister() to allow completely removing registered commands.

Entity

Skins

A new Skin class has been added to allow proper management of player skins.
The following classes have been added:

  • pocketmine\entity\Skin

The following events have been added:

  • PlayerChangeSkinEvent, called when a player changes their skin

The following API methods have been removed:

  • Human->getSkinId() : string
  • Human->getSkinData() : string

The following API methods have been added:

  • Human->getSkin() : Skin
  • Human->sendSkin(Player[]) The following methods have signature changes:
  • Human->setSkin() now accepts Skin instead of string, string
  • Server->updatePlayerListData() now accepts Skin instead of the old skin string parameters.

Other changes

  • Projectile-related classes such as Projectile, ProjectileSource, Snowball etc have been moved to an entity\projectile namespace.
  • Added EntityIds interface containing named constants for Minecraft: Bedrock entity type IDs.
  • Added API methods Entity->canSaveWithChunk() and Entity->setCanSaveWithChunk(). These methods allow marking an entity as non-permanent so that it does not get saved to disk when the chunk is saved.
  • Added API method Entity::createBaseNBT() to allow creation of base NBT needed to spawn an entity without boilerplate CompoundTags everywhere.
  • Added API method Living->lookAt() to make a mob turn and look at a certain position.
  • Entity->spawnTo() should no longer be overridden for sending packets for spawning entities to players; override Entity->sendSpawnPacket() instead.
  • Setting villager profession now shows the correct profession on the client side.
  • Villager::PROFESSION_GENERIC has been removed since it does not exist in vanilla and crashes players if used.
  • A range of API methods have been added to allow controlling entity oxygen supply (2601e35)

Events

  • Removed PlayerMoveEvent->setFrom().
  • Added PlayerChangeSkinEvent

Inventory

  • Added BaseInventory->removeAllViewers() and BaseInventory->dropContents().

Level

  • FloatingTextParticle now uses a transparent skin so that the tiny player cannot be seen.
  • Explosions now correctly remove tiles.

NBT

  • A range of new methods have been added to CompoundTag's API to allow more sane handling of the data they contain. See #1469 for details.
  • tagType parameter has been added to ListTag's constructor.

Item

  • Durable class has been added to abstract damage handling away from tools directly.
  • Enchantment::registerEnchantment() method has been added.
  • Items with out-of-bounds damage values will no longer crash the server.
  • Serializing ItemBlocks which have previously been used to place blocks will no longer raise exceptions
  • Item->getNamedTag() will now return an empty CompoundTag if the item does not have any NBT; this change was made after seeing that this function is only ever used when wanting to alter the item's NBT.
  • Added API methods Item->setNamedTagEntry() and Item->removeNamedTagEntry()
  • Added some constants for commonly-accessed item NBT tags.
  • Some unnecessary/obsolete item classes have been removed.

Player

  • Added Player->getXuid() - note that this will ONLY return a valid XUID for players logged into Xbox Live
  • Changed stupid default values for Player->setAllowMovementCheats() and Player->setAllowInstaBreak()

Scheduler

  • An ErrorException-throwing error handler is now set on AsyncWorkers. Due to a bug in PHP pthreads causing warnings not to get output, you may experience unexpected errors/crashes in AsyncTasks where previously everything appeared to work fine due to silenced warnings.

Utils

  • Fixed Binary::unsignShort() mistakenly being non-static

Gameplay

General

  • Arrows will now fly through smaller spaces as their bounding boxes have been corrected.
  • Arrows can no longer be shot through the top part of a stair.
  • Fixed getting kicked for flight when walking on top of fences, fence-gates and stairs.
  • Fixed a range of bugs with entity movement and collision on fences, fence-gates, glass panes, iron bars,
    doors and a wide variety of other blocks (collision checks on these now account for their correct shape instead of assuming a cuboid bounding box). These bugs occurred due to outdated bounding box caches when blocks' shapes updated.
  • Movement anti-cheat is now disabled by default on new installations.
  • Oxygen supply is no longer used when the player is underwater in creative or spectator modes.
  • Players will no longer take damage on respawn when they were killed while falling from causes other than fall damage.
  • Peaceful difficulty no longer disables player-versus-player combat.
  • Skins with custom capes and geometry models are now supported.

Blocks

  • Added the following:
    • concrete powder
    • red sandstone, red sandstone stairs and red sandstone slabs
    • purpur, purpur stairs and purpur slabs
    • end stone bricks
  • Beds no longer leave their other halves behind invisible when broken in survival mode.
  • Buttons now have the correct rotation when placed.
  • Dead bush now drops 0-2 sticks instead of itself.
  • Falling blocks will now fall when placed above fire.
  • Falling blocks landing in water will no longer overwrite wrong blocks when moved slightly by currents.
  • Farmland will now hydrate when <= 4 blocks from water (crops don't take notice of this yet)
  • Farmland and grass path will now turn to dirt if a solid block is placed on top of them.
  • Mob heads no longer rotate 45 degrees sideways when placed facing north
  • Slab placement in half-block gaps should now (finally!) work correctly.

Crafting

  • Shift-clicking on the recipe book to batch-craft items now works correctly.
  • Crafting using mirrored asymmetric shaped recipes now works correctly.

Entities

  • Mob death animations now last the correct length of time.
  • Dropped items are now destroyed by lava.

Items

  • Flint and steel will now play a sound when a fire is created.
  • Hoes and shovels now break when their damage exceeds their durability (although still take double damage).
  • Implemented writable and written books (#1397)

Don't miss a new PocketMine-MP release

NewReleases is sending notifications on new releases.