1.20.30 (Bedrock Edition)

**1.20.30** — це невелике оновлення для *Bedrock Edition*, випущене 19 вересня 2023 року, яке додає експериментальні зміни з торгівлею з селянами та мандрівними крамарями, нові відповідності з *Java Edition* і виправляє помилки.

## Нововведення

### Ігровий процес

Ігрові правила
* Додано правило `dolimitedcrafting`, яке контролює, чи можуть гравці створювати лише ті предмети, рецепти яких вони розблокували, за замовчуванням `false`.
	+ Требує, щоб ігрове правило `recipesunlock` було встановлено на `true` для роботи.
* Додано `playerssleepingpercentage`, за замовчуванням встановлено на `100`.
	+ Контролює, який відсоток гравців повинен спати, щоб пропустити ніч.
	+ Якщо встановлено 0 або від'ємне значення, достатньо одного гравця, щоб пропустити ніч, і ніч буде пропущено одразу без переходу до засинання.
	+ Якщо встановлено більше 100, ніч не може бути пропущена.
* Додано `recipesunlock`, що контролює, чи потрібно гравцеві збирати предмети для розблокування рецептів у книзі рецептів, за замовчуванням `true`.

### Загальні

Експерименти
* Додано експериментальний перемикач «Зміна балансу торгівлі селян».
	+ Містить оновлені торги для селян з метою покращення балансу.

Налаштування
* Додано опцію «Розблокування рецептів» (ігрове правило `recipesunlock`).
* Додано сповіщення для користувачів iOS та iPadOS, у яких закінчилося місце на диску.
* Додано повідомлення, коли гравець натискає кнопку зміни перспективи камери, але певна перспектива вже встановлена за допомогою команди `/camera`.
* Додано опцію «Вертикальна синхронізація» для налаштувань відео.
* Додано експериментальну опцію відео **Покращена реакція на введення**.
	+ Доступно лише для гравців на Windows.
	+ Зменшує затримку при введенні даних.
		- Увімкнення цього параметра збільшить споживання заряду акумулятора.

`options.txt`
* Додано наступні `options`:
	+ `deferred_viewdistance`, за замовчуванням `8`.
	+ `deferred_upscaling`, за замовчуванням `1`.
	+ `gfx_resizableui`, за замовчуванням `0`.
	+ `new_video_settings`, за замовчуванням `0`.
	+ `graphics_mode`, за замовчуванням `2`.
	+ `shadow_quality`, за замовчуванням `3`.
	+ `point_light_loding_quality`, за замовчуванням `3`.
	+ `bloom_enabled`, за замовчуванням `1`.
	+ `ctrl_improvedInputResponse`, за замовчуванням `0`.

### Технічні

Доповнення
* Додано підтримку опції `allow_random_seed` у шаблонах світу в маніфесті.
* Переміщено ознаки блоків *PlacementDirection* (`minecraft:placement_direction`) та *PlacementPosition* (`minecraft:placement_position`) з експериментальних. Ці ознаки можна використовувати для блоків з `format_version >= 1.20.20`.

JSON
* Випущено наступні компоненти у форматах JSON 1.20.30 та вище:
	+ Компонент предмета `minecraft:wearable`.
	+ Компонент предмета `minecraft:digger`.
	+ Компонент предмета `minecraft:hand_equipped`.
	+ Компонент предмета `minecraft:use_duration`.
	+ Компонент предмета `minecraft:stacked_by_data`.
	+ Компонент предмета `minecraft:use_animation`.
	+ Компонент предмета `minecraft:allow_off_hand`.
	+ Компонент предмета `minecraft:should_despawn`.
	+ Компонент предмета `minecraft:liquid_clipped`.
	+ Компонент предмета `minecraft:damage`.
	+ Компонент предмета `minecraft:enchantable`.
	+ Компонент предмета `minecraft:food`.
* Додано компонент `minecraft:interact_button` для ввімкнення та налаштування тексту на кнопці взаємодії у форматах JSON 1.20.30 та вище.

## Зміни

### Блоки

Добування блоків
* Змінено твердість та вибухостійкість 188 блоків, щоб відповідати *Java Edition*.

Вишневе листя
* Тепер генерує частинки на відносно великій відстані на основі продуктивності системи.

Пофарбована кераміка
* Значення даних `stained_hardened_clay` тепер були розділені на окремі значення.

Цемент
* Значення даних `concrete_powder` тепер розділено на окремі значення.

Гарбуз
* При використання ножиць тепер відтворюється звук вирізання, що відповідає *Java Edition*.

Скалковий сенсор та відкалібрований скалковий сенсор
* Тепер можуть виявити такі події:
	+ Кидання ока Енду.
	+ Їзда пустих вагонеток по рейкам.
	+ Збирання риби, аксолотлів та пуголовків у відра.
	+ Змивання фарби з предметів у казані.
	+ Фарбування обладунків у казані.
	+ Накладання ефектів на стріли у казані.
	+ Використання барвників, щоб змінити колір води в казанах.
	+ Одягання щита мобами в ліву руку.
	+ Прикріплення ярлика до моба.
	+ Викликання заклиначем бісиків або ікла.
	+ Відкладання яєць Курками, жабами та черепахами.
	+ Використання кісткового борошна.
	+ Вставляння книги в різьблені книжкові полиці за допомогою лійки.
	+ Гасіння вогню.
	+ Влізання або вилізання із транспортного засобу.
	+ Поїдання морквяних посівів кроликами.
	+ Поїдання кущів солодких ягід лисицями.
	+ Знімання обладунків.
	+ Розміщення стяга, бамбукових пагонів, латаття або голів.
	+ Розміщення жаб’ячої ікри.
	+ Розміщення або додавання морських огірків.
	+ Додавання/руйнування яєць черепахи.
	+ Тріскання яєць черепахи.

Сніг
* Різні шари снігу мають різну висоту відповідно до *Java Edition*.

Кольорове скло
* Ідентифікатор `stained_glass` тепер розділено на окремі ідентифікатори.

Кольорові скляні панелі
* Ідентифікатор `stained_glass_pane` тепер розділено на окремі ідентифікатори.

### Формат команд

`/camera`
* Now is available without using the "Experimental Cameras" experimental toggle.

`/recipe`
* Тепер доступний без використання експериментального перемикача «Розблокування рецептів».
* Оновлено синтаксис, щоб відповідати *Java Edition*.
	+ Старий синтаксис:
		- `/recipe <victim: target> give <recipe: string>`
		- `/recipe <victim: target> take <recipe: string>`
	+ Новий синтаксис:
		- `/recipe give <player: target> <recipe: string>`
		- `/recipe take <player: target> <recipe: string>`
* Тепер рецепти пропонуються автодоповненням команди.
* Тепер після виконання команди з’являється повідомлення про її виконання.
* Змінено аргумент `victim: target` на `player: target`.

`/scriptevent`
* Більше немає в експериментальному перемикачі «Бета-версії API».

Аметистова друза
* Тепер викорситовує стан блоку `minecraft:block_face` замість `facing_direction`.
	+ `minecraft:block_face` використовує шість лінійних значень `["down", "up", "north", "south", "east", "west"]`.

Ковадло, великий краплелист, плавильна піч, відкалібрований скалковий сенсор, багаття, рамка порталу в Енд, піч, аналой, рожеві пелюстки, редстоуновий компаратор, редстоуновий повторювач, малий краплелист, коптильня та Багаття душ
* Тепер вони використовують стан блоку `minecraft:cardinal_direction` замість `direction` або `facing_direction`.
	+ `minecraft:cardinal_direction` використовує чотири рядкові значення `["north", "south", "east", "west"]`.

Плити
* Тепер викорситовують стан блоку `minecraft:vertical_half` замість `top_slot_bit`.
	+ `minecraft:vertical_half` використовує два лінійних значення `["bottom", "top"]`.

### Ігровий процес

Повзання
* Можливість повзати тепер доступна без використання експериментального перемикача «Повзання».
* Гравець тепер не може повзати під час їзди.
* Гравці тепер можуть увімкнути політ під час повзання у творчому режимі.

Книга рецептів
* Нова система розблокування рецептів та її функції тепер доступні без використання експериментального перемикача «Розблокування рецептів».
	+ Тепер знаходиться за ігровим правилом `recipesunlock`.
* Пошук у книзі рецептів було оновлено під час гри у виживанні з наступними змінами:
	+ Пошук відповідатиме лише початку будь-якого слова в назві предмета. Наприклад, пошук за словом «ка» тепер покаже «камінь», але не «нитка».
		- Рецепти, які не були розблоковані, з’являться в результатах пошуку.
* Оновлено звук розблокування рецепта, щоб відповідати *Java Edition*.
* Тепер тривалість сповіщень про розблокування рецептів розраховується залежно від того, скільки рецептів було розблоковано.

Присідання
* Гравець тепер не може присідати під час їзди.
* Гравці тепер можуть увімкнути політ під час присідання у творчому режимі.

### Загальні

Творчий інвентар
* Видалено підозрілу юшку з творчого інвентарю.

Експерименти
* + Видалено експериментальний перемикач «Розблокування рецептів» та «Повзання».

Загальні
* Іконка нормальної гри була змінена.
	+ Для *Minecraft Preview* іконка гри була змінена з трав’яного блоку на ґрунт.

Головне меню
* Змінено внутрішньоігровий логотип для *Minecraft Preview*.

Музика
* Місця, де відтворюється наступна музика, змінені:
	+ «Aerie», «Firebugs» та «Labyrinthine» більше не програються в головному меню.
	+ «A Familiar Room», «Bromeliad», «Crescent Dunes» та «Echo in the Wind» тепер програються в головному меню.

Новий екран смерті
* Тепер увімкнений за умовчуванням.
* Додано часткову підтримку (колір, статичне затемнення) для «Кодів форматування».

Налаштування
* Тепер диктор голосового відтворення тексту читає текст інструкції, а також кнопку підтвердження в меню «Безпечна зона».
* Змінено сенсорні опції «Джойстик завжди видимий» і «Джойстик видимий, коли не використовується» на «Параметр видимості джойстика» у списку «Параметр видимості джойстика».
* Змінено список «Перемикач присідання» на «Присідання».
* Переміщено кнопку «Синхронізувати старий світ» на екран збереження.
* Перейменовано сенсорну опцію «Лівша» на «Режим лівші».
* Перейменовано опцію «Надзвичайно велике масштабування графічного інтерфейсу» на «Надзвичайно великий новий інтерфейс користувача».
* Голосове відтворення тексту тепер озвучує повідомлення про відключення в ігровому меню при відкритті без підключення до Інтернету.
* Перейменовано кнопку «Керування» на «Скасування» в «Налаштування» > «Підписки».

Меню паузи
* «Меню паузи» перейменовано на «Ігрове меню».

UI
* Оновлені іконки HUD меню для сенсорних елементів керування.
* Додано три нових повідомлення про помилки відключення та покращено два інших.

### Моби

Гоґлін
* Тепер має власний звук при перетворенні в зоґліна.

Висушень
* Тепер видає звук при перетворенні на потопельника.

Свиня
* Тепер відтворює звук, коли перетворюється на зомбованого піґліна.

Сніговий ґолем
* Тепер відтворює звук, коли кидає сніжку.

Селянин
* Знижка за вилікування селянина тепер не збільшується, якщо селянин повторно заразився і вилікувався.
* Коли їх вбивають, вони більше не дропають предмети, які тримають у руках.

Мандрівний крамар
* Тепер може продати 1 саджанець вишні за 5 смарагдів.

Відьма
* Тепер кидає зілля зцілення та регенерації на рейдерів під час рейду.

Зомбоселянин
* Тепер можна побачити їхній ранг за зовнішнім виглядом.

### Неживі істоти

Падаючий блок
* Тепер ламається, коли падає на човен або какао-боби.

### Генерація світу

Розподіл руди
* Діамантова руда тепер генерується частіше в шарах глибосланцю у Верхньому світі.
	+ Додано нове розміщення рудних жил: рівномірно розподілене, від висоти -64 до -4, з розміром жил 8, частотою генерації 2 і 50% ймовірністю приховання при контакті з повітрям.
	+ Інші існуючі родовища алмазних руд залишаються недоторканими.

### Технічні

Сервер
* Linux Dedicated Server: Ubuntu 20.04 LTS (Focal Fossa) тепер є мінімально підтримуваною версією Ubuntu. Ubuntu 18.04 LTS більше не підтримується.

## Експериментальні

Ці нововведення та зміни доступні, якщо увімкнути експериментальні перемикачі «Розблокування рецептів», «Бета-версії API», «Функції Molang» та «Експериментальні камери».

### Нововведення

#### Технічні

API
* Додано API скриптів камери для наступних API:
	+ `setCamera()`: щоб налаштувати камеру на вказане попереднє налаштування.
	+ `fade()`: щоб почати вимкнення камери.
	+ `clear()`: щоб очистити поточні налаштування камери.

JSON
* Відкрито `DimensionType` для сценаріїв.
* Відкрито наступні правила розміщення елементів:
	+ `minecraft:aggregate_feature`.
	+ `minecraft:cave_carver_feature`.
	+ `minecraft:fossil_feature`.
	+ `minecraft:geode_feature`.
	+ `minecraft:growing_plant_feature`.
	+ `minecraft:multiface_feature`.
	+ `minecraft:nether_cave_carver_feature`.
	+ `minecraft:ore_feature`.
	+ `minecraft:partially_exposed_blob_feature`.
	+ `minecraft:scatter_feature`.
	+ `minecraft:search_feature`.
	+ `minecraft:sequence_feature`.
	+ `minecraft:single_block_feature`.
	+ `minecraft:snap_to_surface_feature`.
	+ `minecraft:structure_template_feature`.
	+ `minecraft:surface_relative_threshold_feature`.
	+ `minecraft:tree_feature`.
	+ `minecraft:underwater_cave_carver_feature`.
	+ `minecraft:vegetation_patch_feature`.
	+ `minecraft:weighted_random_feature`.

### Зміни

#### Ігровий процес

Торгівля
* Змінено механізм торгівлі бібліотекарів, які продають зачаровані книги.
	+ Замість того, щоб пропонувати всі можливі зачаровані книги, бібліотекарі тепер будуть пропонувати конкретні зачаровані книги, залежно від того, в якому біомі вони з’явилися.
		- Села в джунглях і на болотах не з’являються самостійно. Таким чином, гравці повинні розмножувати селян або лікувати зомбоселян у цих біомах, щоб отримати доступ до цих торгів.
	+ Усі зачаровані книги, що продаються, тепер поділяються на особливі та звичайні.
		- Спеціальні книги мають специфічні чари з фіксованим рівнем і доступні лише у майстрів-бібліотекарів з повним досвідом.
		- Звичайні книги мають певні чари без фіксованого рівня, як і раніше.
	+ Усі чари, що використовуються для арбалета, вудки і тризубця, більше не можна купити.

Доступні для продажу зачарування

* Змінено торгівлю мандрівного крамаря.
	+ Список торгів тепер складається з наступних торгів, по порядку:
		- Торг купівлі (нові) × 2
		- Торг спеціального продажу × 2
		- Торг звичайного продажу × 5
	+ Додано нові торги на купівлю, деякі торги на продаж та змінено деякі існуючі торги на продаж:

#### Технічні

API
* Конвертовано `set_block_property` на `set_block_state` для користувацьких блоків.
* Додано `defineVector` до `DynamicPropertiesDefinition`.
* `EntityEquipmentInventoryComponent`
* `EntityEquipmentInventoryComponent`
	+ Реалізовано слот *validation* для `setEquipment`, який тепер повертає логічне значення, що вказує на те, чи може предмет бути екіпірований у вказаний слот.
	+ `EntityEquipmentInventoryComponent` наразі доступний лише для гравців.
		- Переміщено `getDay` на `1.4.0`.
		- Переміщено `getTimeOfDay` на `1.4.0`.
		- Переміщено `setTimeOfDay(timeOfDay: number | TimeOfDay)` на `1.4.0`.
		- Переміщено `getAbsoluteTime` на `1.4.0`.
		- Переміщено `setAbsoluteTime(absoluteTime: number)` на `1.4.0`.
	+ Переміщено `TimeOfDay` на `1.4.0`.
		- Додано обмеження довжини на `setLore` — до `20` рядків з `50` символами в рядку.
		- Переміщено функцію `setLore` на `1.4.0`.
		- Переміщено функцію `getLore` на `1.4.0`.
		- Переміщено клас `SystemAfterEvents` на `1.4.0`.
		- Переміщено клас `ScriptEventCommandMessageAfterEvent` на `1.4.0`.
	+ Переміщено `onScreenDisplay` на `1.4.0`.
	+ Переміщено `titleDisplayOptions` на `1.4.0`.
	+ Переміщено `screenDisplay` на `1.4.0`.
* Видалено визначення `MinecraftBlockTypes` в `@minecraft/server`.
* Переміщено `ItemUseBeforeEvent` на `1.4.0`.
* Переміщено `ItemUseOnBeforeEvent` на `1.4.0`.
* Переміщено `ItemUseAfterEvent` на `1.4.0`.
* Переміщено `ItemUseOnAfterEvent` на `1.4.0`.
* Переміщено `ItemStartUseOnAfterEvent` на `1.4.0`.
* Переміщено `ItemStopUseAfterEvent` на `1.4.0`.
* Переміщено `ItemStopUseOnAfterEvent` на `1.4.0`.
* Переміщено `ItemCompleteUseAfterEvent` на `1.4.0`.
* Переміщено `ItemReleaseUseAfterEvent` на `1.4.0`.
* Переміщено `ItemStartUseAfterEvent` на `1.4.0`.
* Переміщено `DimensionLocation` на `1.4.0`.
* Перейменовано `PositionInUnloadedChunkError` на `LocationInUnloadedChunkError` і переміщено на `1.4.0`.
* Перейменовано `PositionOutOfWorldBoundariesError` to `LocationOutOfWorldBoundariesError` і переміщено на `1.4.0`.
	+ Переміщено `getSpawnPoint` на `1.4.0`.
	+ Переміщено `setSpawnPoint` на `1.4.0`.
	+ Переміщено `getDefaultSpawnLocation` на `1.4.0`.
	+ Переміщено `setDefaultSpawnLocation` на `1.4.0`.
* `WorldAfterEvents`
	+ Видалено `projectileHit`.
	+ Додано `projectileHitBlock`.
	+ Додано `projectileHitEntity`.
* Додано клас експорту `ProjectileHitBlockAfterEvent`:
	+ `ProjectileHitBlockAfterEvent { readonly dimension: Dimension; readonly hitVector: Vector3; readonly location: Vector3; readonly projectile: Entity; readonly source?: Entity; getBlockHit(): BlockHitInformation; }`
* Додано клас експорту ProjectileHitEntityAfterEvent:
	+ `ProjectileHitEntityAfterEvent { readonly dimension: Dimension; readonly hitVector: Vector3; readonly location: Vector3; readonly projectile: Entity; readonly source?: Entity; getEntityHit(): EntityHitInformation; }`
* Випущено API Scoreboard з `beta` на `1.4.0`.
	+ Оновлено `Scoreboard.getObjective`, `getObjectiveAtDisplaySlot` та `clearObjectiveAtDisplaySlot` to `return '| undefined '`.
* Випущено `isValid()` з `beta` на `1.4.0` для наступних класів:
	+ `Block`
	+ `Container`
	+ `Entity`
	+ `Player`
	+ `SimulatedPlayer`
* Переміщено `Direction` на `1.4.0`.
* Переміщено `EntityDamageSource` на `1.4.0`.
* Переміщено `EntityDieAfterEvent` на `1.4.0`.
* Переміщено `EntityEventOptions` на `1.4.0`.
* Переміщено `EntityHitBlockAfterEvent` на `1.4.0`.
* Переміщено `EntityHitEntityAfterEvent` на `1.4.0`.
* Переміщено `EntityHurtAfterEvent` на `1.4.0`.
* Переміщено `EntityHealthChangedAfterEvent` на `1.4.0`.
* Переміщено метод `Dimension.getBlockFromRay` на `1.4.0`.
* Переміщено метод `Dimension.getEntitiesFromRay` на `1.4.0`.
* Переміщено метод `Entity.getBlockFromViewDirection` на `1.4.0`.
* Переміщено метод `Entity.getEntitiesFromViewDirection` на `1.4.0`.
* Переміщено `BlockRaycastHit` на `1.4.0`.
* Переміщено `BlockRaycastOptions` на `1.4.0`.
* Переміщено `EntityRaycastHit` на `1.4.0`.
* Переміщено `EntityRaycastOptions` на `1.4.0`.
* Переміщено `PressurePlatePushEvent` на `1.4.0`.
* Переміщено `PressurePlatePopEvent` на `1.4.0`.
* Переміщено `TripWireTripEvent` на `1.4.0`.
* Переміщено `TargetBlockHitEvent` на `1.4.0`.
	+ Зроблено властивість `id` доступною, навіть якщо сутність не є дійсною.
	+ Зроблено властивість `typeId` доступною, навіть якщо сутність не є дійсною.
	+ Змінено властивості елемента подія `source` з типу `Entity` на `Player`.
* Видалено `MinecraftItemTypes` з `@minecraft/server` і замінено на версію з `@minecraft/vanilla-data`.
* Додано функцію `remove-` Видаляє сутність. Цей метод не може бути застосований до гравців, але може бути використаний до *імітованих гравців* в `Gametest`.
* `MolangVariableMap`
	+ Додано функцію `setFloat`.
	+ Змінено тип повернення `setColorRBG`, `setColorRGBA`, `setSpeedAndDirection` та `setVector3` на `void`.
	+ Змінено властивість `MolangVariableMap` на `spawnParticle`, щоб бути необов'язковою: `spawnParticle(effectName: string, location: Vector3, molangVariables?: MolangVariableMap): void`.
* Перейменовано `Colorinterface` на `RGBA`.
* Додано інтерфейс `RGB`.
* Додано функції зв'язування скриптів для отримання/встановлення початку координат `CompoundBlockVolume`.
* Додано додатковий параметр до деяких методів для запиту дочірніх класів `CompoundBlockVolume` за їхню позиційну відносність до батьківських класів.
* Додано додаткові параметри до деяких методів для заморожування позиційної відносності при зміні походження.
* Перетворено контейнер `CompoundBlockVolume` для використання відносних координат до внутрішнього початку координат.
* Переміщено `ProjectileHitBlockAfterEvent` на `1.5.0`.
* Переміщено `ProjectileHitEntityAfterEvent` на `1.5.0`.
* Переміщено `ProjectileHitBlockAfterEventSignal` на `1.5.0`.
* Переміщено `ProjectileHitEntityAfterEventSignal` на `1.5.0`.
* Переміщено `BlockHitInformation` на `1.5.0`.
* Переміщено `EntityHitInformation` на `1.5.0`.
	+ Переміщено `spawnParticle(effectName: string, location: Vector3, molangVariables?: MolangVariableMap)` на `1.5.0`.
	+ Переміщено `setColorRGB(variableName: string, color: RGB)` на `1.5.0`.
	+ Переміщено `setColorRGBA(variableName: string, color: RGBA)` на `1.5.0`.
	+ Переміщено `setFloat(variableName: string, number: number)` на `1.5.0`.
	+ Переміщено `setSpeedAndDirection(variableName: string, speed: number, direction: Vector3)` на `1.5.0`.
	+ Переміщено `setVector3(variableName: string, vector: Vector3)` на `1.5.0`.
* `RGB`
	+ Переміщено `RGB` на `1.5.0`.
	+ Переміщено `RGBA` на `1.5.0`.
	+ Переміщено `triggerEvent(eventName: string)` на `1.5.0`.
* Перейменовано `EntityEquipmentInventoryComponent` на `EntityEquippableComponent`.
* Оновлено `isSolid`, `isLiquid` та `isAir`, щоб бути властивостями, а не методами.
* `ScriptEventCommandMessageAfterEvent`
	+ Зроблено `initiator`, `sourceBlock` та `sourceEntity` необов'язковими типами.
* `ItemStack`
	+ Додано `getCanPlaceOn()` та `getCanDestroy()`.
	+ Додано верхню максимальну межу 255 для властивості «кількість» - при перевищенні буде викинуто.
* `Entity`
	+ Додано функцію `getProperty(identifier: string): boolean | number | string | undefined` — Отримує властивість сутності.
	+ Додано функцію `setProperty(identifier: string, value: boolean | number | string): void` — Встановлює властивість сутності під час наступного такту.
	+ Додано функцію resetProperty(identifier: string): boolean | number | string; — Скидає властивість сутності до значення за замовчуванням під час наступного тику і повертає значення за замовчуванням.
* `beforeEvents`
	+ Додано подію/властивість `removeEvent`.
* `afterEvents`
	+ Перейменовано подію/властивість `removedEvent` на `removeEvent`.
* Клас `EntityRemovedAfterEvent`
	+ Перейменовано поле `removedEntity` на `removedEntityId: removedEntityId: string`.
	+ Додано поле `typeId: string`.
* Додна клас `EntityRemovedBeforeEvent`.
	+ Переміщено клас `removedEntity: Entity`.
* Переміщено `EquipmentSlot` до `5.0` і змінено значення переліку на великі літери.
* Переміщено `EntityEquippableComponent` до `5.0`.
* `Scoreboard`
	+ Тип повернення `setObjectiveAtDisplaySlot` тепер коректно встановлено на `ScoreboardObjective` або `undefined`.
* `ScoreboardIdentity`
	+ Тип повернення `getEntity` тепер коректно встановлено на `Entity` або `undefined`.
* API `setWeather` тепер може приймати необов'язковий параметр тривалості для встановлення тривалості погоди.
* Додано `read-only` property `heightRange: NumberRange` — Отримує мінімальні/максимальні межі висоти виміру.
* Додано `Player.isSleeping` та `Player.isEmoting`.
* Змінено `scoreboardIdentity`, щоб вона була дійсною навіть після того, як сутність було вбито.
* Події у світі
	+ Перейменовано `BlockBreakAfterEvent` на `PlayerBreakBlockAfterEvent`
		- Додано readonly `itemStackAfterBreak?: ItemStack` (невизначено, якщо рука порожня)
		- Додано readonly `itemStackBeforeBreak?: ItemStack` (невизначено, якщо рука порожня)
	+ Перейменовано `BlockBreakAfterEventSignal` на `PlayerBreakBlockAfterEventSignal`
		- Функція subscribe тепер приймає `options?: BlockEventOptions`
	+ Додано `PlayerBreakBlockBeforeEvent` з такими членами
		- `cancel: boolean`, скасовує подію, яка не відбулася
		- `itemStack?: ItemStack`, стак предметів, який використовує гравець (невизначено, якщо рука порожня)
		- readonly `player: Player`, гравець, що розбиває блок
	+ Додано `PlayerBreakBlockBeforeEventSignal`
	+ Перейменовано `BlockPlaceAfterEvent` на `PlayerPlaceBlockAfterEvent`
	+ Перейменовано `BlockPlaceAfterEventSignal` на `PlayerPlaceBlockAfterEventSignal`
		- Функція subscribe тепер приймає `options?: BlockEventOptions`
	+ Додано `PlayerPlaceBlockBeforeEvent` з такими членами
		- `cancel: boolean`, скасовує подію, яка не відбулася
		- readonly `face: Direction`, сторона, на яку встановлюється блок
		- readonly `faceLocation: Vector3`, розташування сторони, на якому був розміщений блок
		- `itemStack: ItemStack`, стак предметів, який використовується для розміщення блоку
		- readonly `player: Player`, гравець, який ставить блок
	+ Додано `PlayerPlaceBlockBeforeEventSignal`
	+ Змінено `WorldAfterEvents`
		- Перейменовано `blockBreak` на `playerBreakBlock`
		- Перейменовано `blockPlace` на `playerPlaceBlock`
	+ Змінено `WorldBeforeEvents`
		- Додано `playerBreakBlock`
		- Додано `playerPlaceBlock`
	+ Додано `BlockEventOptions` з такими членами
		- `blockTypes?: string[]`, назви блоків для фільтрування
		- `permutations?: BlockPermutation[]`, конкретні перестановки блоків для фільтрування
	+ Додано клас `EntityLoadAfterEvent`
		- Нове поле `entity: Entity`
		- Додано клас `EntityLoadAfterEventSignal`
	+ Клас `EntitySpawnAfterEvent`
		- Додано властивість readonly cause: `EntityInitializationCause_`
	+ Клас `WorldAfterEvents`
		- Додано властивість readonly `entityLoad: EntityLoadAfterEventSignal`
	+ Додано зчислення `EntityInitializationCause`

JSON
* Вилучено компонент `minecraft:creative_category` у форматах JSON 1.20.20 і вище.
* Видимість творчих груп і команд тепер можна налаштувати в полі `description` у форматах JSON 1.20.20 і вище.
* Змінено тривалість чар вогню, що використовується для снарядів з `ShooterItemComponent`, щоб відповідати ванільній поведінці.
* Значення звуку `min_distance` та `max_distance` тепер приймають як float, так і цілі значення.
* Контролери рендерингу без текстур тепер призводять до помилки вмісту та ігноруються.
* `minecraft:entity_placer` тепер буде виводити помилку, коли недійсні блоки названі в списках `use_on` та `dispense_on`.
* Видалено `MinecraftEntityTypes` з `@minecraft/server` і замінено на версію з `@minecraft/vanilla-data`.
* Відрикто `MoonPhase` та `World.getMoonPhase` для сценаріїв.
* Видалено компонент `minecraft:animates_in_toolbar`.
* Видалено компонент `minecraft:explodable`.
* Текст наведення додаткової шкоди тепер з'являється на всіх предметах-компонентах, до яких застосовано заклинання «Гострота».
* Компонент `minecraft:shooter`тепер підтримує чарування «Швидке заряджання» з `minecraft:enchantable` коли `charge_on_draw` є істиною.
* Видалено з компонента `minecraft:wearable` нефункціональні опції слотів сутностей, а саме: сідло, обладунки та скрині.
* Користувацькі предмети з компонентом `minecraft:wearable` автоматично екіпіруються, коли випадають з роздавача, дотримуючись паритету з ванільними предметами обладунків.
* Видалено бул `server-authoritative-sound` з `server.properties`.
* Видалено параметри `on_dig` з компоненту предмета `minecraft:digger` у форматах JSON 1.20.20 і вище.
* Видалено компонент `minecraft:ignores_permission`.
* Видалено компонент `minecraft:mirrored_art`.
* Перенесено поле `protection` з компонента `minecraft:armor` до компонента `minecraft:wearable` у форматах JSON 1.20.20 і вище.
* Вилучено компонент `minecraft:armor` у форматах JSON 1.20.20 і вище.
* Видалено *нефункціональні* та *зайві* опції слотів з компонента `minecraft:wearable`, а саме: mainhand, hotbar, inventory, enderchest та equippable.
* Предмети з компонентом `minecraft:wearable`, що використовують слот `weapon.offhand`, більше не екіпіруються, коли предмет використовується на гарячій панелі.
* Екіпірування користувацьких предметів викликає загальний звук екіпірування.
* Користувацькі предмети з компонентом `minecraft:wearable` тепер можна екіпірувати натисканням і перетягуванням в інвентарі або клацанням з утриманням клавіші `⇧ Shift`.
* Додано `Scoreboard.addScore` та покращено `Scoreboard.setScore` для повернення оновленого рахунку.
* Поле для цільових дескрипторів `cooldown` тепер коректно працює в цілі `minecraft:behavior.nearest_prioritized_attackable_target`.
* Застарілий `minecraft:mining_speed` у форматах JSON 1.20.30 і вище.
* Виправлено проблему, коли предмети з версією формату 1.20.20 і вище, що використовують поле `menu_category` у світі з увімкненим експериментальним перемикачем «Функції редактора свят», не завантажувалися.
* Видалено компонент `minecraft:requires_interact`.

Molang
* Перейменовано `block_property` та `has_block_property` на `block_state` та `has_block_state`.

## Виправлення

137 помилок виправлено
З версій до 1.20.0
* MCPE-19700 – Була неправильна текстура елітр у рамці та руці.
* MCPE-33139 – Звуку кроків по ковадлу не було.
* MCPE-43402 – Звук блискавиці не використовувався.
* MCPE-43831 – Тризуб з вірністю відтворював дивні звуки.
* MCPE-44296 – Ворота не мали правильної моделі в інвентарі.
* MCPE-46490 – Міцність арбалета зменшувалася після заряджання.
* MCPE-50609 – Були відсутні звуки, коли ворожий моб випускає стріли або кидає тризуб.
* MCPE-52452 – Коралові блоки надто довго ламалися.
* MCPE-60024 – Розміри шарів снігу змінювалися лише двічі.
* MCPE-62797 – Кирки не прискорювали добування поршня.
* MCPE-68721 – Риштування та кущі солодких ягід у виживанні не можна було зламати миттєво.
* MCPE-77746 – Палаючі моби не підпалювали гравця.
* MCPE-80924 – Дорослі зомбоселяни використовували текстуру фермера незалежно від їхньої справжньої професії.
* MCPE-81790 – Селяни можгли змінювати професію в нічний час/під час рейдів.
* MCPE-85429 – Камера не проходила крізь скло, скляні панелі та залізні ґрати.
* MCPE-85888 – Горизонт змінював колір при стоянні під блоками.
* MCPE-87379 – Гоґліни відтворювали неправильні звуки перетворення.
* MCPE-94722 – Портал у Незер не видавав жодної анімації чи звуку, коли обсидіан ламався.
* MCPE-95872 – Незеритові речі видавали звуки горіння в лаві.
* MCPE-96015 – Предмети, що горять у лаві, не видавали звуку горіння і були непослідовними при цьому.
* MCPE-98861 – Значна затримка введення на пристроях з render dragon.
* MCPE-101180 – Швидкість видобутку гіфів була вища, ніж стебел.
* MCPE-101644 – Багряні та химерні стебла/гіфи мали нижчу стійкість до вибуху, ніж інші види деревини.
* MCPE-114425 – Не було `/gamerule playerssleepingpercentage` в *Bedrock Edition*.
* MCPE-114602 – Швидкість добування цегли з каменю Енду не відповідала швидкості добування каменю Енду.
* MCPE-119083 – Коли сніговий голем кидав сніжку, він відтворював звук пострілу зі стріли.
* MCPE-123488 – Замість звуків піднімання великого краплелиста використовувалися звуки опускання.
* MCPE-128117 – Були відсутні звуки при деактивації провідника.
* MCPE-130070 – Була проблема застряглого плавання вниз.
* MCPE-131572 – Неможливо було використовувати мишу або дотик для навігації текстовими меню.
* MCPE-132408 – Глибосланцеві блоки мали значно нижчу вибухостійкість, ніж кам'яні.
* MCPE-132511 – Звук не відтворювався під час виходу з води.
* MCPE-136484 – Не відтворювався звук навколишнього середовища якоря відродження.
* MCPE-137449 – Цегла з каменю Енду мала нижчу вибухостійкість, порівняно зі звичайним каменем Енду.
* MCPE-138995 – Траєкторія зілля була порушена.
* MCPE-139021 – Гра вилітала при вході у світ, де ви повертаєтесь через портал Енду назад у Верхній світ.
* MCPE-139242 – Мідь і тесані мідні блоки мали слабшу вибухостійкість порівняно з *Java Edition*.
* MCPE-139246 – Мідна руди мала слабшу вибухостійкість порівняно з іншими рудами.
* MCPE-151745 – Нежить одягала зловісний стяг замість того, щоб тримати його в руці.
* MCPE-154378 – min\_distance / max\_distance вимагала десяткових чисел, не працювала з цілими числами.
* MCPE-154428 – Великі заклинання на столі блокувалися накладеними предметами.
* MCPE-157055 – Увімкнення або вимкнення живлення повторювача або компаратора в проточній воді ненадовго блокувало потік води.
* MCPE-159217 – Віньєтка накладається на хотбар та інші елементи HUD з увімкненою опцією «Красива графіка».
* MCPE-159409 – Аргумент hasitem/data не застосовувався до предметів, які використовують дані як «damage».
* MCPE-159736 – Було дублювання обладунків, що стакалися, при екіпіровці їх з хотбару.
* MCPE-160889 – Боронитель не фіксував падіння предметів.
* MCPE-161134 – Перейменована сутність або деякі блоки мають контейнер з відображенням у форматі "(text)text" `$container_title`.
* MCPE-161165 – Скалковий сенсор не надсилав сигнал крикуну, коли гравець кидав предмет.
* MCPE-161438 – Босбар рейду автоматично порожніла після поразки гравця.
* MCPE-162061 – Було видно прозорі блоки через портал Енду на межі чанку.
* MCPE-162253 – Книга та перо не видавали звуків під час використання бамперів контролера Xbox.
* MCPE-163050 – Xbox: Помилка казала, що закінчилося місце на диску, вилітало в меню з дивним фоном.
* MCPE-163497 – Верблюди не видавали звуків піску на червоному піску чи цементі.
* MCPE-163671 – Xbox: Рух миші тремтячий / піксельний / не плавний.
* MCPE-164634 – Мій світ Minecraft продовжував аварійно завершувати роботу, коли я наближався до певної області.
* MCPE-165062 – Сон під порталом Енду призводив до того, що гра застрягала на екрані завантаження і викликала портал Незеру.
* MCPE-165301 – Невідомий блок.
* MCPE-166152 – iOS та iPadOS: при зміні попереднього тексту він стирався та ламався у книжці з пером.
* MCPE-166565 – Присідання, а потім плавання змушувало гравця постійно опускатися.
* MCPE-167403 – Неможливо було присісти під час польоту в творчому режимі з сенсорним керуванням.
* MCPE-168789 – Імена були абсолютно невидимі під час підкрадання.
* MCPE-168887 – Скалкові сенсори не реагували на зміни в різьбленій книжковій полиці за допомогою лійок і викидачів.
* MCPE-168998 – Передача редстоуну через користувацький `minecraft:block` була непослідовною.
* MCPE-169557 – Свині не видавали звуку смерті, коли їх конвертують.
* MCPE-169728 – Був баг з крафтингом стаку предметів.
* MCPE-169840 – Клавіша Backspace не стирала весь текст при натисканні.
* MCPE-171213 – Було неправильне зіткнення камери з компостером від 3-ї особи.
* MCPE-172381 – Сніговий покрив мав непослідовне зіткнення з падаючими предметами.
* MCPE-172429 – Зі стркутурною пустотою не можна було взаємодіяти

З версії 1.20.0
* MCPE-163456 – Вивіски, розміщені командами, мали дуже великий хітбокс у порівнянні зі звичайними вивісками.
* MCPE-168805 – Були відсутні деякі звуки щітки.
* MCPE-168813 – Відкалібрований скалковий сенсор не повністю світився при активації.
* MCPE-170033 – Багаття горіли в руїнах стежки.
* MCPE-170841 – Була різниця швидкостей камер при повзанні та використанні тягуна.
* MCPE-171254 – Функції редактора персонажа не відповідали піктограмі попереднього перегляду.
* MCPE-171383 – Кісткове борошно не працювало під водою після 1.20.
* MCPE-171461 – Під час сну екран ставав повністю чорним.
* MCPE-171489 – Саундтрек Trails & Tales не грав під час гри та в головному меню.
* MCPE-171521 – Мандрівний крамар не продавав вишневі саджанці.
* MCPE-171560 – Рожеві пелюстки не можна було вирощувати, використовуючи кісткове борошно в роздавачі.

З версій 1.20.x
* MCPE-171822 – Вишневий гай використовував водяний туман 1.16.100.
* MCPE-172704 – Скалковий сенсор спрацьовував повторно, коли на нього потрапляли стріли, тризуби або кинуті предмети.
* MCPE-172835 – Натискання клавіші Enter не в кінці тексту в чаті видаляло все, що знаходилося перед ним.
* MCPE-172910 – Якщо встановити `playerssleepingpercentage` на 0 або від'ємне значення, анімація сну була б пропущена.
* MCPE-172917 – Повідомлення в чаті не з'являлося, коли пропуск ночі неможливий, якщо `playerssleepingpercentage` встановлено вище 100.
* MCPE-172920 – [ScriptAPI] `ScoreboardObjective::removeParticipant` не синхронізувався з клієнтами.
* MCPE-173028 – Повідомлення про помилки «Виявлено втрачене з'єднання» та «Закрито покинуте з'єднання» не було перекладено.
* MCPE-173189 – [ScriptAPI] Деякі символи рахувалися як 2 або 3 символи при перевірці кількості символів у методі `setLore()`.
* MCPE-173323 – Аванпости розбійників не генерувалися у вишневих гаях.
* MCPE-173524 – Кілька команд `/camera` в одному тіку ігнорувалися.
* MCPE-173706 – Була затримка рендерингу блоків по всьому чанку, спричинена оновленням блоків уздовж кордонів чанків.
* MCPE-174073 – [Script API] Була неочікувана зміна властивостей нативних класів.

З версії 1.20.10
* MCPE-170870 – Режим повзання не вимикався під час їзди.
* MCPE-170907 – При перемиканні на режим спостерігача гравець не припиняв підкрадатися або повзти.
* MCPE-170969 – Механіка плавання була змінена таким чином, що вам доведеться дивитися на небо, щоб зробити вдих.
* MCPE-170994 – Проблема з паритетом повзання.
* MCPE-171065 – `/recipe` не надсилала повідомлення у чат, якщо введено правильний синтаксис.
* MCPE-171086 – Введення команди `/recipe` не показує підказок.
* MCPE-171098 – Синтаксис команди `/recipe` не відповідав *Java Edition*.
* MCPE-171112 – Інтерфейс розблокування рецептів міг з'явитися в меню паузи або в налаштуваннях світу.
* MCPE-171116 – Звук спливаючого вікна розблокування рецептів не відповідав *Java Edition*.
* MCPE-171141 – Перекладений текст спливаючого сповіщення про розблокування рецептів обрізався і не читався.
* MCPE-171225 – Гравці задихалися під час повзання при Y=1 та Y=2
* MCPE-171797 – Гравець міг увімкнути режим польоту під час польоту на елітрах.
* MCPE-171800 – Взяття оздобленого горщика з творчого інвентарю призводило до недійсного опису блока.
* MCPE-171812 – Спостерігачі все ще адаптувалися до невеликих просторів.

Інші
* Порожні карти тепер видають відповідний звук, коли гравці починають їх заповнювати.
* Камера від третьої особи більше не прорізає рельєф місцевості поблизу води або лави.
* Виправлено помилку, коли кравці у творчому режимі не загоряються, коли стоять у вогні.
* Гравці більше не можуть підкрадатися або повзти під час анімації тягуна.
* Гравці більше не повзають випадково, коли не повинні.
* Виправлено нижню грань ефекту порталу, щоб її колір і прозорість відповідали іншим граням.
* Виправлено проблему, через яку гравці тимчасово зникали при першому приєднанні до гри.
* iOS and iPadOS: Виправлено збій при завантаженні блоків JSON.
* Виправлено збій, який міг статися, коли гра втрачала фокус під час входу у світ.
* Виправлено проблему, коли екранний голос читав елементи папки книги рецептів як перший елемент у папці.
* Виправлено помилку, коли утримувана мапа не вирівнюється по центру під час відтворення на екранах із вузьким співвідношенням сторін.
* Xbox: Виправлено попередження про недостатню кількість місця на диску.
* Камера від третьої особи більше не проходить крізь сніг, багнюку та пісок.
* Виправлено проблему, через яку клієнт не міг з'єднатися з вибраним сервером у деяких ситуаціях.
* Виправлено помилку, через яку автодоповнення для значень після дужок пропадає, якщо в командах немає пробілу між тильдою (як координатою Z) та назвою блоку.
* Гра більше не вилітає, коли намагається розмістити недійсну користувацьку функцію.
* Стрибки з присіданням, прицілюючись вперед і утримуючи кнопку побудови, більше не будуть продовжувати будувати блоки вгору за межі того місця, куди гравець прицілився.
* Виправлено збій у «Відкладеному технічному перегляді», який міг статися під час генерації рельєфу.
* Виправлено проблему з помилками вмісту, що виникали з увімкненим експериментальним перемикачем «Функції редактора свят» при використанні версії JSON-об'єкта `max_stack_size`, `can_destroy_in_creative`, `hover_text_color`.
* Виправлено помилки, пов'язані з неправильним завантаженням наборів світів з Realms.
* Збирання риби, аксолотлів і пуголовків відрами тепер випускає вібрації в потрібному місці.
* Виправлено іконки ZL/ZR для контролерів Joy-Con та Switch Pro на Android.
* Виправлено підсвічування предметів у руках у «Відкладеному технічному перегляді».
* Оптимізація та виправлення внесків точкового світла.
* Виправлено поведінку кнопки зворотного зв'язку на новому екрані «Грати», яка не посилається на сторінку зворотного зв'язку.
* Виправлено різні проблеми з масштабуванням пікселів на екрані HUD.
* Виправлено проблему, коли помилки вмісту для предметів з останньою версією формату відображалися для інших предметів.
* Комбінація клавіш геймпада в ігровому меню на новому екрані смерті тепер працює коректно.
* Цемент тепер має правильний колір у світах, імпортованих з попередніх версій.
* Виправлено помилку, коли човен не з’являвся на воді, якщо блок під водою підсвічувався.
* Виправлено помилку в освітньому режимі, яка не дозволяла команді появи неігрових персонажів працювати, якщо гравці не мали дозволу `worldbuilder`, коли базова версія світу була до 1.19.8.

1 помилка виправлена
З версій до 1.20.0
* BDS-17527 – Були численні падіння сервера через витік пам'яті під час завантаження чанків.

## Цікаві факти

* 1.20.20 є шостою пропущеною версією *Bedrock Edition*, після 1.3.0, 1.15.0, 1.16.230, 1.17.20 та 1.18.20.

## Примітки

1. ↑ «Minecraft - 1.20.30 (Bedrock)» – Minecraft Feedback, 19 вересня 2023 року.