- Game can crash while ticking some mobs (parrots, allays, etc). MC-250321
Minecraft now uses LWJGL version 3.3.1, which contains Java 19-compiled class files. While you do not need Java 19 to play or build mods, this means Fabric Loader needs to be updated to version 0.14.0 (currently beta), and the same goes to Loom (refresh dependencies). The new Fabric Loader also contains some new features and improvements; the most significant one being ability to mixin into libraries like authlib.
Texts were split into text contents and structures. "Text contents" include what was previously called LiteralText, TranslatableText, etc (which no longer subclass or implement Text), and "text structure" is Text/MutableText (now a class with implementation). Text contents implement class_7417/TextContent. Various NBT text implementations have now been changed to "data sources", which NbtContent will use to query the data.
Here are some upcoming yarn renames (see FabricMC/yarn#3105):
| Old | New |
|---|---|
| BlockNbtText | BlockNbtDataSource |
| EntityNbtText | EntityNbtDataSource |
| KeybindText | KeybindTextContent |
| LiteralText | LiteralTextContent |
| NbtText | NbtTextContent |
| ScoreText | ScoreTextContent |
| SelectorText | SelectorTextContent |
| StorageNbtText | StorageNbtDataSource |
| TranslatableText | TranslatableTextContent |
This also means the methods on creating Text instances have changed. Previously you called one of the constructors of the classes. However, due to the split, they no longer create a Text. Instead, you need to call the static methods in Text:
| Old Class | New Method |
|---|---|
| LiteralText | of |
| TranslatableText | translatable |
| KeybindText | keybind |
| NbtText | nbt |
| ScoreText | score |
| SelectorText | selector |
(Note: there are also Text#literal which acts like of except not allowing null, and Text#empty() to indicate empty text.)
If your class took TranslatableText etc, it's likely that you want to change it to Text. Also if you somehow have a TextContent and you want to make it into a Text, try MutableText#of.
AbstractRandom#nextPredictablewas added, returning a random double with a triangular distribution. The values are more "predictable" than gaussian random values.- Rendering code has changed significantly, mostly to remove unnecessary binding of buffers.
- Painting received some refactors.
PaintingSpawnS2CPacketwas removed. - Tracked entity positions have a new wrapper class (
net.minecraft.entity.TrackedPosition). Code that previously existed onEntityS2CPacketetc have been moved to that class. You can access it viaEntity#getTrackedPosition/updateTrackedPosition. - Save file loading (for singleplayer world screen) have changed. Arguments that took the world folder as
Filenow take eitherPathor a new recordLevelStorage.LevelSave. Util#combineCancellablewas added. This works likeUtil#combineexcept it cancels all other futures when one throws.