Bedrock Edition beta 1.20.0.22

**Beta 1.20.0.22** (Android) or **Preview 1.20.0.22** (Windows, iOS, iPadOS, Xbox) is the third beta/*Preview* version for Bedrock Edition 1.20.0, released on April 26, 2023 which adds a new music disc, new `/camera` command, new music, and fixes bugs.

## Additions

### General

Experiments
* Added the "Experimental Cameras" experimental toggle.
	+ Enable the `/camera` command.

Loading tips
* Added the following loading screen tips:
	+ Explore structures throughout the Minecraft world to find smithing templates to trim your armor pieces.
	+ Need more smithing templates? Try to copy them.
	+ The sniffer egg seems to like moss blocks.
	+ Mob heads make sounds, try them out on note blocks!
	+ Some sand might be suspicious. Use your brush on it to find some good stuff!
	+ Two players can ride together on a camel.
	+ The camels jump... horizontally!

Music
* Added new ambient soundtracks, all by Aaron Cherof.
	+ "A Familiar Room" plays in survival mode (all biomes).
	+ "Bromeliad" play in bamboo jungle, cherry grove, flower forest, forest, jungle, sparse jungle.
	+ "Crescent Dunes" plays in desert, all types of badlands.
	+ "Echo in the Wind" plays in cherry grove, flower forest, lush caves, all types of badlands.

Splashes
* Added the following splashes:
	+ This sand is sus
	+ Remember to brush your... ...teeth
	+ Has working bookshelves!
	+ Sniff sniff...
	+ Place hanging sign here

### Items

Music Disc
* Added a new music disc by Aaron Cherof titled "Relic".
	+ Can only be obtained when brushing suspicious gravels within trail ruins, with 1⁄12 chance appeared as a rare loot.
	+ Emits a redstone signal of 14.

## Changes

### Blocks

Calibrated Sculk Sensor
* Now lasts 10 game ticks when in Active phase instead of 20.
* Now lasts 10 game ticks when in Cooldown phase instead of 1.

Moss Block
* Can now have bamboo and sugar cane planted on it.

Pitcher Plant and Pitcher Crop
* Can now be crafted into two cyan dye instead of one.

Pumpkin
* Changed `direction` block state to `minecraft:cardinal_direction`, the original block state still exist but will not show up in the auto-complete.

Sculk Sensor
* Now lasts 30 game ticks when in Active phase instead of 40.
* Now lasts 10 game ticks when in Cooldown phase instead of 1.

Sniffer Egg
* Can now be found in the suspicious sand loot table found at warm ocean ruins.
* Now emits particles only when placed on moss blocks.

Suspicious Gravel
* Can now have bamboo planted on it.

Suspicious Sand
* Can now have bamboo, cactus, sugar cane, and dead bushes planted on it.

### General

Death screen
* Reverted changes when the "Show Coordinates" setting is enabled.

Splashes
* Changed the following splashes to match *Java Edition*:
	+ <Honey, I grew the bees> to <Honey, I grew the bees!>.
	+ < <3 Max & 99 & Ducky> to < <3 Max & 99 & Ducky!>.
	+ <Bushy eyebrows> to <Bushy eyebrows!>.
	+ <Edit is a name> to <Edit is a name!>.
	+ <From free range developers> to <From free range developers!>.

### Items

Pottery Sherd
* Renamed from Pottery Shard to Pottery Sherd.

### Mobs

Mooshroom
* Brown mooshrooms can now eat torchflowers.

Sniffer
* Can now be tempted using torchflower seeds.
* Now rather breeds than search and dig for items or be tempted.
* Now creates particles while digging.

### World generation

Trail Ruins
* Reworked and added more variants.
* No longer generates with sand.
* Tweaked the amount of gravel and dirt.
* Tweaked the amount of suspicious gravel.
* Split the archaeological loot tables for the suspicious gravel within the structure.
	+ Rare loot items and common loot items now each have their own dedicated archaeological loot table.

### Technical

Bedrock Editor
* Fixed a bug where the default command permission level of the client differed from what was displayed in a multiplayer session.
* Tool mode movement will now use the vanilla keyboard controls instead of hardcoded `W`/`A`/`S`/`D`/`Space`/`⇧ Shift` keys. Movement bindings can now be customized from the settings menu, but some keys might not be available if they are being used by other editor actions.

JSON
* Custom items with `minecraft:record` show the correct sound description in hover text and on playing in a jukebox.

## Experimental

These additions and changes are accessible by enabling the "Beta APIs" and "Experimental Cameras" experimental toggles.

### Additions

#### Command format

`/camera`
* A new command that can switch to custom camera perspectives and fade the screen.
	+ Syntax: (Simplified)
		- `**camera** <players: target> . . .`
			* `... ***clear***`
			* `... ***fade*** . . .`
				+ `... color <red: float> <green: float> <blue: float>`
				+ `... time <fadeInSeconds: float> <holdSeconds: float> <fadeOutSeconds: float> . . .`
					- `... color <red: float> <green: float> <blue: float>`
			* `... ***set*** <preset: string> . . .`
				+ `... [default: default]`
				+ `... ease <easeTime: float> <easeType: Easing> . . .`
					- `... [default: default]`
					- `... pos <position: x y z> . . .`
						* `... rot <xRot: value> <yRot: value>`
					- `... rot <xRot: value> <yRot: value>`
				+ `... pos <position: x y z> . . .`
					- `... rot <xRot: value> <yRot: value>`
				+ `... rot <xRot: value> <yRot: value>`

### Changes

#### Technical

Add-ons
* Changed `minecraft:cardinal_direction` and `minecraft:facing_direction` states from int to string type.
	+ `minecraft:cardinal_direction` has four values `["north", "south", "east", "west"]`.
	+ `minecraft:facing_direction` has six values `["down", "up", "north", "south", "east", "west"]`.
* Removed `knockback_resistance` item component.

API
* New APIs moved from beta to stable `@minecraft/server 1.2.0`:
	+ Moving `applyDamage(amount: number, options?: EntityApplyDamageByProjectileOptions | EntityApplyDamageOptions): boolean` to `2.0`.
	+ Moving `kill(): boolean` to `2.0`.
	+ Moving `EntityApplyDamageOptions` to `2.0`.
	+ Moving `EntityApplyDamageByProjectileOptions` to `2.0`.
	+ Moving `EntityDamageCause` to `2.0`.
	+ Moving `addTag(tag: string)` to `2.0`.
	+ Moving `removeTag(tag: string)` to `2.0`.
	+ Moving `hasTag(tag: string)` to `2.0`.
	+ Moving `getTags()` to `2.0`.
	+ Moved "Containerand" `BlockInventoryComponent` and `EntityInventoryComponent` to `2.0`.
	+ Moved *Music APIs* from beta to stable.
	+ Moved *Sound APIs* from beta to stable.
	+ Moved `ModalFormData`, `MessageFormData`, and `ActionFormData` to `0.0`.
	+ Fixed bug in response of `MessageFormResponse` where selection was inverted from which button was selected. *button1* now refers *\*\** to the left button and results in a selection of 0 and *button2* now refers to the right button and results in a selection of 1.
	+ Moved `ItemStackconstructor` and *getter APIs* to `2.0`.
	+ Moved `EntityItemComponent`, `ItemComponent`, `ItemTypeand`, and `ItemLockMode` to `2.0`.
	+ Moving `applyImpulse(vector: Vector3): void` to `2.0`.
	+ Moving `applyKnockback(directionX: number, directionZ: number, horizontalStrength: number, verticalStrength: number): void` to `2.0`.
	+ Moving `clearVelocity(): void` to `2.0`.
	+ Moved `runCommand` from beta to `2.0`.
* Enchantments
	+ Removed `MinecraftEnchantmentTypes` class. Use `MinecraftEnchantmentTypes` from `@minecraft/vanilla-data` module for minecraft version specific information.
	+ Added support for `strings` in all enchantment methods for specifying the enchantment type.
* source on `ExplosionBeforeEvent` is now an optional property because explosions may not have a source.
* Tameable component
	+ Removed `unimplemented` and `tameEvent` from `TameableComponent`.
* Updated API to better handle operations outside of loaded and ticking areas.
* `PositionInUnloadedChunkError: Exception` thrown when trying to interact with a block object that isn't in a loaded and ticking chunk anymore.
* `PositionOutOfWorldBoundariesError: Exception` thrown when trying to interact with a position outside of dimension height range.
* Dimension
	+ `getBlock` now returns an optional Block to reflect it might return 'undefined' if asking for a block at an unloaded chunk.
* Signs
	+ Added optional `SignSide` parameter to functions `setText`, `getText`, `getRawText`, `setTextDyeColor`, and `getTextDyeColor` on `BlockSignComponent` to support getting and setting text and colors on both sides of signs.
	+ Added `isWaxed` property to `BlockSignComponent` indicating whether players can edit the sign or not.
	+ Added `setWaxed` method to `BlockSignComponent` to block players from editing the sign.
* `runCommand` and `runCommandAsync` on `Dimension` and `Entity` can now fail with a `CommandError`.
	+ `runCommand` can throw a `CommandError` exception.
	+ `runCommandAsync` will pass a `CommandError` into the reject handler.

## Fixes

Archaeology
* Trail ruins no longer generate partially exposed. (MCPE-168869)
* The loot tables for suspicious gravel inside trail ruins no longer have duplicate entries for bricks. (MCPE-168856)

Blocks
* Fixed an issue where the pitcher plant and pitcher crop textures appeared darker.

Commands
* The `hasitem` target selector argument now correctly detects whether or not an actor has a filled map or firework star in their inventory.
* The `/inputpermission` command now has a description displayed in the command dialogue preview.

Gameplay
* Flying is no longer disabled when flying under stairs. (MCPE-168999)
* Bees no longer make the player eating sound when eating. (MCPE-169567)

Items
* Moved raiser armor trim smithing template's icon one pixel to the right. (MCPE-168934)
* Moved wayfinder armor trim smithing template's icon one pixel to the right. (MCPE-168934)
* Fixed a bug where in some situations an item in an item frame would be too small. (MCPE-163399)

Mobs
* Sniffer can no longer search and dig in water.
* Made sniffer walk cycle smoother.

## References

1. ↑ "Minecraft Beta & Preview - 1.20.0.22" – Minecraft Feedback, April 26, 2023.