Skip to content

Releases: pmmp/BedrockProtocol

34.0.0 for Minecraft Bedrock 1.21.30

18 Sep 21:39
440c807
Compare
Choose a tag to compare

Changes since 33.x.x

Protocol changes

New packets

  • CameraAimAssistPacket
  • ContainerRegistryCleanupPacket

Packet changes

  • EmotePacket has a new field int $emoteLengthTicks
  • InventoryContentPacket has new fields FullContainerName $containerName, int $dynamicContainerSize, int $dynamicContainerId field was removed
  • InventorySlotPacket has new fields FullContainerName $containerName, int $dynamicContainerSize, int $dynamicContainerId field was removed
  • ResourcePacksInfoPacket has removed fields BehaviorPackInfoEntry[] $behaviorPackEntries and bool $forceServerPacks
  • TransferPacket has a new field bool $reloadWorld, exact purpose unclear
  • UpdateAttributesPacket field Attribute[] $entries was replaced by UpdateAttribute[] $entries

Types

  • LevelSoundEvent:
    • The following types has been added:
      • IMITATE_DROWNED
      • BUNDLE_INSERT_FAIL
    • The following types has been renamed:
      • RESPAWN_ANCHOR_BASALT_DELTAS_MOOD to AMBIENT_BASALT_DELTAS_MOOD
  • PlayerAction:
    • The following types has been deprecated:
      • START_SPIN_ATTACK
  • PlayerAuthInputFlags:
    • The following types has been added:
      • BLOCK_BREAKING_DELAY_ENABLED
      • HORIZONTAL_COLLISION
      • VERTICAL_COLLISION
      • DOWN_LEFT
      • DOWN_RIGHT
  • Added CameraAimAssistActionType, contains the following new types:
    • SET
    • CLEAR
  • Added CameraAimAssistTargetMode, contains the following new types:
    • ANGLE
    • DISTANCE
  • CameraPreset has new fields ?float $rotationSpeed, ?bool $snapToTarget, ?Vector3 $entityOffset
  • Added UpdateAttribute, contains the following fields:
    • string $id
    • float $min
    • float $max
    • float $current
    • float $defaultMin
    • float $defaultMax
    • float $default
    • array $modifiers
  • ContainerIds:
    • The following types has been added:
      • CONTAINER_ID_REGISTRY
      • CONTAINER_ID_REGISTRY_INVENTORY
  • FullContainerName field int $dynamicId = 0 was modified to ?int $dynamicId = null
  • BehaviorPackInfoEntry was removed

Other changes

  • PacketSerializer public function getAttributeList() : Attribute[] method was removed
  • Added some missing property getters in packets (cac5a16)
  • CameraTargetInstruction Use little-endian long for ActorUniqueId, thanks for the consistency mojang... :/ (440c807)

33.0.0 for Minecraft Bedrock 1.21.20

16 Aug 00:33
e226413
Compare
Choose a tag to compare

Changes since 32.x.x

Protocol changes

New packets

  • CurrentStructureFeaturePacket
  • JigsawStructureDataPacket
  • ServerboundDiagnosticsPacket
  • ServerboundLoadingScreenPacket

Packet changes

  • CameraInstructionPacket has new fields ?CameraTargetInstruction $target, ?bool $removeTarget
  • ChangeDimensionPacket has a new field ?int $loadingScreenId
  • CorrectPlayerMovePredictionPacket has a new field ?float $vehicleAngularVelocity, this field is only sent when predictionType is VEHICLE
  • DisconnectPacket has a new field ?string $filteredMessage, exact purpose unclear
  • EditorNetworkPacket has a new field bool $isRouteToManager
  • InventoryContentPacket has a new field int $dynamicContainerId
  • InventorySlotPacket has a new field int $dynamicContainerId
  • MobArmorEquipmentPacket has a new field ItemStackWrapper $body
  • PlayerArmorDamagePacket has a new field ?int $bodySlotDamage
  • PlayerArmorDamagePacket has a new flag BODY
  • SetTitlePacket has a new field string $filteredTitleText, exact purpose unclear
  • StopSoundPacket has a new field bool $stopLegacyMusic
  • StructureTemplateDataRequestPacket type IMPORT has been removed
  • StructureTemplateDataResponsePacket type IMPORT has been removed

Types

  • EntityLink has new fields bool $causedByRider, float $vehicleAngularVelocity
  • AbilitiesLayer has a new type LAYER_LOADING_SCREEN
  • ActorEvent: PLAYER_CHECK_TREASURE_HUNTER_ACHIEVEMENT was renamed to DEPRECATED_UPDATE_STRUCTURE_FEATURE (finally mojang cleaning their hacks)
  • LevelSoundEvent:
    • The following types has been added:
      • IMITATE_BOGGED
      • VAULT_REJECT_REWARDED_PLAYER
    • The following types has been removed:
      • IMITATE_ILLUSION_ILLAGER
  • Camera
    • CameraPreset has new fields ?Vector2 $viewOffset, ?float $radius
    • CameraSetInstruction has a new field ?Vector2 $viewOffset
    • CameraTargetInstruction has been added
  • Added LoadingScreenType, contains the following new types:
    • UNKNOWN
    • START_LOADING_SCREEN
    • STOP_LOADING_SCREEN
  • ContainerUIIds has a new type DYNAMIC
  • Added FullContainerName contains the following new fields:
    • int $containerId
    • int $dynamicId, default value is 0
  • Removed PlaceIntoBundleStackRequestAction
  • Added PredictedResult, contains the following new types:
    • FAILURE
    • SUCCESS
  • Added TriggerType, contains the following new types:
    • UNKNOWN
    • PLAYER_INPUT
    • SIMULATION_TICK
  • UseItemTransactionData now has the following fields
    • TriggerType $triggerType
    • PredictedResult $clientInteractPrediction
  • CraftRecipeAutoStackRequestAction has a new field int $repetitions2, good one mojang... :/
  • CraftRecipeStackRequestAction has a new field int $repetitions
  • CreativeCreateStackRequestAction has a new field int $repetitions
  • GrindstoneStackRequestAction has a new field int $repetitions
  • ItemStackRequestActionType
    • The following types has been removed:
      • PLACE_INTO_BUNDLE
      • TAKE_FROM_BUNDLE
  • ItemStackRequestSlotInfo int $containerId field has been replaced by FullContainerName $containerName
  • ItemStackResponseContainerInfo int $containerId field has been replaced by FullContainerName $containerName
  • BehaviorPackInfoEntry has a new field bool $isAddonPack
  • ResourcePackInfoEntry has a new field bool $isAddonPack

Other changes

  • Any static function is allowed to have a @generate-create-func tag (a61b555)
  • PlayerAuthInputPacket implements a internalCreate() method that uses the @generate-create-func tag to do extra validation without losing autogen capability (5db8d10)
  • PacketHandlerInterface: handleCloseForm method was renamed to handleClientboundCloseForm
  • Fixed PREDICTION_TYPE_PLAYER and PREDICTION_TYPE_VEHICLE values being swapped on CorrectPlayerMovePredictionPacket (#259)
  • Added missing ?Vector2 $vehicleRotation field on CorrectPlayerMovePredictionPacket, this field is only send when predictionType is VEHICLE (#259)
  • PacketSerializer now has bindings for read/write Vector2 fields

32.2.0 for Minecraft Bedrock 1.21.2

10 Aug 21:40
229e5f3
Compare
Choose a tag to compare

Changes since 32.1.0

Protocol changes

Enum changes

  • Updated EntityMetadataProperties enum to 1.21.2

32.0.0 for Minecraft Bedrock 1.21.2

09 Jul 19:35
0e90215
Compare
Choose a tag to compare

Changes since 31.0.0

Protocol changes

New packets

  • CloseFormPacket: closes the entire stack of forms

17.1.0 for Minecraft Bedrock 1.19.50

16 Dec 17:12
c572706
Compare
Choose a tag to compare

Changes since 17.0.0

Protocol changes

Enum changes

  • Updated LevelSoundEvent enum to 1.19.50
  • ContainerUIIds adds a new member RECIPE_BOOK (21) - everything above and including ENCHANTING_INPUT shifts value up by 1

17.0.0 for Minecraft Bedrock 1.19.50

16 Dec 17:10
272e101
Compare
Choose a tag to compare

Changes since 16.0.0

Protocol changes

New packets

  • UpdateClientInputLocksPacket: exact purpose unclear, currently non-functional

Packet changes

  • StructureTemplateDataRequestPacket has a new type IMPORT
  • StructureTemplateDataResponsePacket has a new type IMPORT

Enum changes

  • EntityMetadataFlags added a new CAN_DASH (46) - everything above and including LINGER shifts value up by 1

Other changes

  • Fixed ClientboundMapItemDataPacket checking incorrect flags when reading scale field.

16.0.0 for Minecraft Bedrock 1.19.40

16 Dec 17:05
ce900ff
Compare
Choose a tag to compare

Changes since 15.0.0

  • Added missing field to ItemStackRequest (BC break)
  • Added missing field to StructureSettings (BC break)
  • Add color parameter to BossEventPacket::unknown6()

15.0.0 for Minecraft Bedrock 1.19.40

16 Dec 17:03
9c39f26
Compare
Choose a tag to compare

Changes since 14.0.0

  • CraftRecipeAutoStackRequestAction: added missing protocol change from 1.19.40 (BC breaking)

14.0.0 for Minecraft Bedrock 1.19.40

26 Oct 10:59
b455a74
Compare
Choose a tag to compare

Changes since 13.x.x

Protocol changes

Packet changes

  • AddActorPacket now requires a new PropertySyncData $syncedProperties field
  • AddPlayerPacket now requires a new PropertySyncData $syncedProperties field
  • SetActorDataPacket now requires a new PropertySyncData $syncedProperties field

Enum changes

  • UpdateAbilitiesPacketLayer has a new EDITOR member

New types

  • PropertySyncData: Purpose currently unclear, but appears to be a planned replacement for actor metadata. Currently unused and can be filled with empty arrays for now.

13.0.0 for Minecraft Bedrock 1.19.30

20 Sep 18:58
94de222
Compare
Choose a tag to compare

Changes since 12.x.x

Protocol changes

New packets

  • GameTestRequestPacket
  • GameTestResultsPacket
  • RequestNetworkSettingsPacket - this is now the first packet in a session, instead of LoginPacket
  • ServerStatsPacket

Removed packets

  • AdventureSettingsPacket

Packet changes

  • NetworkSettingsPacket has new fields int $compressionAlgorithm, bool $enableClientThrottling, int $clientThrottleThreshold, float $clientThrottleScalar
  • StructureBlockUpdatePacket has a new field bool $waterlogged
  • TextPacket has a new type TYPE_JSON_ANNOUNCEMENT

New enums

  • CompressionType - used by NetworkSettingsPacket

Other changes

  • RecipeIngredient now accepts an ItemDescriptor instead of ID+meta. This enables more features like selecting items based on tags, Molang code, or other conditions. The types of descriptors currently supported are:
    • IntIdMetaItemDescriptor - this is used by all current vanilla recipes and is essentially the same as what we had to begin with
    • MolangItemDescriptor - allows selecting compatible items based on a Molang code predicate
    • StringIdMetaItemDescriptor - same as IntIdMetaItemDescriptor, but uses string IDs and doesn't allow negative meta values (?)
    • TagItemDescriptor - allows selecting compatible items based on their type tags, like in Java (see the wiki)