No crashes or similar important bugs have been discovered.
- Crashes introduced in the previous version (Random multithreading issue and UUID issue) were fixed.
- This release fixes the crash when beds in custom dimension. This issue was previously patched via Fabric API.
22w14a introduced some changes to random number generation. Here is a reminder that AtomicSimpleRandom will crash when used concurrently - this also affected vanilla, when trying to play a sound. If you are somehow using world.random or similar AtomicSimpleRandom instances outside the client/server thread, including the network IO thread, you should switch to world.field_38861 (note that this requires accessor or access widener.)
Speaking of random changes, MobEntity#initEquipment and updateEnchantments now takes AbstractRandom argument. Same goes for HorseBaseEntity#initAttributes.
The code now uses fastutil collections in many places to improve performance, most notably LootTable#generateLoot. While they can be casted to regular List, Map, etc, it is not recommended. Check the fastutil javadoc for usage notes.
Code that previously took DataCache argument now requires class_7403 (an interface). The interface has two methods, the first one being the path for both. 43345 is for text contents and you pass the text. 43346 is for binary contents and you pass the content and its SHA1 hash.
You must now always call addProvider even if you do not use it. Whether to run the provider or not can be controlled via its first boolean argument. Fabric API adds addProvider(DataProvider) overload that always runs the provider.
There were some changes to game events. Two new methods for emitting a game event - WorldAccess#method_43275 and method_43276 - were added. Some will take a new class, GameEvent.class_7397, as an argument. This is the "emitter" and holds the source entity or the affected block state.
Entity#getLandingPos's functionality is moved tomethod_43260andgetLandingBlockStatetomethod_43261. The previously existing methods (23312) are still there but they behave differently;43260checks(x, y-0.2, z)while23312now check at(x, y-1e-05, z). This means that for example if you are on a carpet on a soul soil43260returns the soul soil's position while23312returns the carpet's position. Things like soul speed check in vanilla use43260thus keeping the previous behavior, while the sculk sensor wool check now uses23312allowing carpets to cancel vibrations. The names will be fixed in the next yarn release.PlayerEntity#getUuidFromProfilewas moved toDynamicSerializableUuid#method_43343; same goes forgetOfflinePlayerUuid.
level://protocol support for server resource packs removed.- Resource pack downloading related code now uses
URL. - Trying to read a null text from
PacketByteBufnow raisesDecoderException.
DataFixerUpper (the library) now supports lazy optimization similar to LazyDFU; however the game does not use this feature. Mojang is also considering merging some changes from the DFU fork Cadmium by JellySquid.