Writing down small things to check... - [x] Need to redo slow falling and step height attribute modifier - [x] Need to reevaluate finalize spawn because the CompoundTag was removed - [x] Check where RegistryCodecs#fullCodec went - [x] Fix overlays - [x] Replace TitleScreenModUpdateIndicator by a custom button subclass - [x] Reimplement packet splitter - [x] Decide what to do about FBB and RFBB - [x] Status: Config packets will continue to use FBB only for now. - [ ] Always use RFBB in the API with the relevant registry access. - [ ] Fix serverbound packets to use RFBB. - [x] System chat type needs looking into - [x] Decide whether `Direction.getNearestStable` is worth keeping. Status: Removed. - [x] Make sure that registry sync runs before data pack registry and tag sync. - [ ] Reimplement step height fix if mojang does not fix https://bugs.mojang.com/browse/MC-268917. Else remove the two related comments in `Player`. - [x] Potentially fix https://bugs.mojang.com/browse/MC-268727?filter=-2 as it is more likely with NeoForge servers due to the longer configuration phase. Status: Fixed by Mojang. - [x] Throw if (de)serializing a registry ID for a registry that is not synced. - [x] Fix `TierSortingRegistry` and related things. (`DiggerItem` patch?) Status: Removed. Notes for mod devs: - `BlockState#neighborChanged` -> `BlockState#handleNeighborChanged` - `Screen#screenWidth` and `Screen#screenHeight` are now `GuiGraphics` methods - `FlowerBlock` supplier patches removed, use holders - `MobEffects`, `GameEvent`, `Attributes` fields now use holders. As such, methods such as `LivingEntity#getEffect` accept a holder instead of a registry object - `NBTUtils#writeBlockPos` (and `readBlockPos`) now de/encodes a int[3] array instead of {X, Y, Z} - Gametests not have a `skyAccess` flag that when `false` (**default**) will encase the test in a barrier block box. This may affect tests that have an entity for example outside the vertical bounds - `ClientChatReceivedEvent#getBoundChatType` is `null` when the message is a system message - `Entity#defineSynchedData` now has a builder parameter which should be used instead of accessing `entityData` - `Pack`s now use a `PackLocationInfo` that stores their ID and name. `Pack.Info` has been mostly replaced by `Pack.Metadata` (though some fields have been moved to `PackSelectionConfig` and `PackLocationInfo`); `PackResources` are identified using `PackLocationInfo`s - Gui overlay system changes: - Now uses vanilla's `LayeredDraw.Layer` interface. - The system is significantly easier to patch for NeoForge. For modders, there is not much of a difference: see `RegisterGuiLayersEvent` and `RenderGuiLayerEvent`. - The screen width and height (previously parameters of `IGuiOverlay`) are now accessible via the `GuiGraphics`. - Block reach, entity reach, step height, and gravity attributes are now available in vanilla Minecraft. The NeoForge ones (such as `NeoForgeMod.ENTITY_GRAVITY`) have been removed.