0
0
mirror of https://github.com/pmmp/PocketMine-MP.git synced 2024-11-21 17:45:20 +00:00
PocketMine-MP/changelogs/3.9.md
Dylan K. Taylor 6399dacba7 Release 3.9.8
2019-12-06 20:33:51 +00:00

7.5 KiB

For Minecraft: Bedrock Edition 1.12.0

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.9.0

  • Added support for Minecraft: Bedrock Edition 1.12.0
  • Removed compatibility with 1.11.0

Protocol

  • The following classes in the \pocketmine\network\mcpe\protocol namespace have been renamed:
    • AddEntityPacket -> AddActorPacket
    • AddItemEntityPacket -> AddItemActorPacket
    • AvailableEntityIdentifiersPacket -> AvailableActorIdentifiersPacket
    • BlockEntityDataPacket -> BlockActorDataPacket
    • EntityEventPacket -> ActorEventPacket
    • EntityFallPacket -> ActorFallPacket
    • EntityPickRequestPacket -> ActorPickRequestPacket
    • MoveEntityAbsolutePacket -> MoveActorAbsolutePacket
    • MoveEntityDeltaPacket -> MoveActorDeltaPacket
    • RemoveEntityPacket -> RemoveActorPacket
    • SetEntityDataPacket -> SetActorDataPacket
    • SetEntityLinkPacket -> SetActorLinkPacket
    • SetEntityMotionPacket -> SetActorMotionPacket
    • TakeItemEntityPacket -> TakeItemActorPacket
  • The following classes in the \pocketmine\network\mcpe\protocol namespace have been removed:
    • FullChunkDataPacket
  • The following classes in the \pocketmine\network\mcpe\protocol namespace have been added:
    • AddEntityPacket (not to be confused with the old one)
    • ClientCacheBlobStatusPacket
    • ClientCacheMissResponsePacket
    • ClientCacheStatusPacket
    • LevelChunkPacket
    • RemoveEntityPacket (not to be confused with the old one)
    • StructureTemplateDataExportRequestPacket
    • StructureTemplateDataExportResponsePacket

3.9.1

  • Fixed resource packs not working on 1.12 clients.
  • Fixed some particles displaying incorrectly (some still don't render at all).
  • Fixed Entity->setFireTicks() with a value of 0 setting the on-fire flag.
  • Silenced a debug message which appeared every time a player right-clicked a block.
  • Updated constants for LevelSoundEventPacket.

3.9.2

  • Logger warnings for illegal player movements have been lowered to debug.
  • TNT explosions now start from the center instead of the base. This fixes unexpected results when TNT is lit on top of obsidian.
  • Fixed the loadbefore directive in plugin.yml sometimes being ignored.
  • Fixed Item->setCustomName() with an empty string leaving behind an empty tag.
  • Fixed incorrect positioning of bucket empty sound.
  • Fixed some incorrect tag parsing in /give involving quoted numbers.

3.9.3

  • Fixed a memory leak on async task removal in error conditions.
  • Fixed scheduled block updates (for example liquid) triggering chunk reloading. This could cause a significant performance issue in some conditions.
  • Fixed some minor cosmetic issues in documentation.

3.9.4

  • Fixed a memory leak when scheduled updates were pending on a chunk being unloaded.
  • Fixed plugin detection in crashdumps. Previously src/pocketmine anywhere in the path would cause the error to be considered a core crash, regardless of the preceding path.
  • Fixed entity metadata types for 1.12. The SLOT type was removed and a COMPOUND_TAG type added. This change involves changes to internal API which may break plugins. See the warning at the top of this changelog about API versioning.
  • Fixed random and base populator amounts of trees and tallgrass never being initialized. This bug had no obvious effect, but may have become a problem in future PHP versions.
  • The following internal methods have been marked as @deprecated and documentation warnings added:
    • Entity->getBlocksAround()
    • Entity->despawnFrom()
    • Entity->despawnFromAll()
  • Fixed plugin softdepend not influencing load order when a soft-depended plugin had an unresolved soft dependency of its own.
  • Fixed endless falling of sand on top of fences.

3.9.5

  • Fixed some issues with multiple consecutive commas inside quotes in form responses.
  • Fixed server crash when the manifest json does not contain a json object in a resource pack.
  • Ender pearls no longer collide with blocks that do not have any collision boxes.

3.9.6

  • Updated Composer dependencies to their latest versions.
  • Prevent clients repeating the resource pack sequence. This fixes error spam with bugged 1.12 clients.
  • Internet::simpleCurl() now includes the PocketMine-MP version in the user-agent string.
  • Spawn protection is now disabled by default in the setup wizard.
  • Default difficulty is now NORMAL(2) instead of EASY(1).
  • Fixed crashing on corrupted world manifest and unsupported world formats.
  • Fixed /transferserver being usable without appropriate permissions.
  • RegionLoader->removeChunk() now writes the region header as appropriate.
  • Fixed performance issue when loading large regions (bug in header validation).
  • Fixed skin geometry being removed when the JSON contained comments.
  • Added new constants to EventPacket.
  • Added encode/decode for StructureTemplateDataExportRequestPacket and StructureTemplateDataExportResponsePacket.
  • Fixed broken type asserts in LevelChunkPacket::withCache() and ClientCacheMissResponsePacket::create().
  • types\CommandParameter field byte1 has been renamed to flags.
  • Cleaned up public interface of AvailableCommandsPacket, removing fields which exposed details of the encoding scheme.
  • Improved documentation for the following API methods:
    • pocketmine\item\Item:
      • addCreativeItem()
      • removeCreativeItem()
      • clearCreativeItems()
    • pocketmine\level\Explosion:
      • explodeA()
      • explodeB()
  • Fixed various cosmetic documentation inconsistencies in the core and dependencies.

3.9.7

  • Fixed a crash that could occur during timezone detection.
  • Squid no longer spin around constantly in enclosed spaces. Their performance impact is reduced.
  • Cleaned up the bootstrap file.

3.9.8

  • Added PHPStan configuration. PHPStan is now used on CI for automated QA, which should improve stability and quality going forward.
  • The following constants are now autoloaded when loading the Composer autoloader:
    • pocketmine\NAME
    • pocketmine\BASE_VERSION
    • pocketmine\IS_DEVELOPMENT_BUILD
    • pocketmine\BUILD_NUMBER
    • INT32_MIN
    • INT32_MAX
    • INT32_MASK
  • Fixed memory leaks and crashes caused by plugin use of Player->showPlayer() and Entity->spawnTo().
  • Fixed crashes that could occur when tile classes were overridden with classes incompatible with the originals.
  • Fixed improper handling of non-Compound root NBT tags on network itemstack decoding.
  • Fixed paintings dropping multiple items when destroyed by block updates.
  • Fixed var_dump() not showing private and protected properties of DataPacket subclasses.
  • Fixed overloads with zero arguments being missing when decoding AvailableCommandsPacket.
  • CraftingDataPacket now retains the cleanRecipes field when decoding.
  • Fixed Block->getMetadata() returning null (non-iterable).
  • PlayerChatEvent documentation has been updated to specify that CommandSender recipients are accepted. This behaviour was already present in previous versions, but incorrectly documented.
  • Fixed various issues with PHPDoc comments reported by PHPStan.
  • Fixed various minor code nits reported by PHPStan.