This one's a boring update.
Yet another week of breaking change. First, a new Fabric API version for the previous snapshot made one change to Datagen API: FabricWorldgenProvider is renamed to FabricDynamicRegistryProvider. This also added FabricItemGroupEntries#shouldShowOpRestrictedItems method and fixed various bugs within the Item Group API and Biome API.
This week, Fabric API 0.66.3 has one more breaking change: Textures API is now gone, as it was superseded with vanilla Atlas Configuration in resource packs. (The other feature, sprite dependency, was removed in 22w42a due to code breakage and lack of usage.)
If you are using Mojang Mapping, you can probably ignore this. But please use Yarn, I spend hours on this boring fun "staring-at-mojank party" every week.*
TL;DR: Run a Find & Replace:
net.minecraft.tagtonet.minecraft.registry.tagnet.minecraft.util.dynamic.RegistryOpstonet.minecraft.registry.RegistryOpsnet.minecraft.util.registry.RegistryEntrytonet.minecraft.registry.entry.RegistryEntrynet.minecraft.util.registrytonet.minecraft.registry
Yarn just got a Great Registry Repackaging, a proposal from February 11th by haykam (see issue #3002). After the 1.18.2 refactor made a tag part of the registry ecosystem, there was a discussion on having a registry a top-level package (like tags did). We chose this version, as the last snapshot's Registry content split meant most mods have to fix their imports anyway. (Note, we do not recommend updating mods to snapshots.)
The new package net.minecraft.registry replaces the net.minecraft.util.registry package, except that the RegistryEntry and related classes are now moved to the subpackage entry. RegistryOps is now also in the registry package. The whole net.minecraft.tag package has now moved to net.minecraft.registry.tag.
As mentioned above, Fabric Textures API is now gone. This API, previously full of legacy junk, received its first set of breaking changes in 22w42a to adapt to the new sprites changes. Mojang's additional refactors to sprite loading made the API obsolete, as the same functionality can now be achieved by the vanilla resource pack. See the vanilla changelog for details.
The confusing Shader/Program classes were renamed; see #3384.
Instrument#fromAboveStateandfromBelowState, which gets the instrument for heads and other blocks. (Yes, Piglin is an instrument.)OneTwentyAdvancementProvidersandOneTwentyHusbandryTabAdvancementGenerator, which generates the 1.20 advancement JSONs.FillBiomeCommand, which implements the new/fillbiomecommand.ThreadedAnvilChunkStorage#sendChunkPacketToWatchingPlayers, which sends a chunk update packet (used by/fillbiome).BlockBox#containsoverload with three integer coordinates.ItemStackSet#create, which creates a new set.NativeImage#copyRectoverload.BlockEntry#getIdentifierPredicate,getPathPredicate, andgetNamespacePredicate, which return the predicate of the resource blocking entry.MinecraftClient#isConnectedToLocalServer, which checks whether the player has joined the integrated server.MinecraftClient#isOptionalTelemetryEnabledByApi,isTelemetryEnabledByApi, andisOptionalTelemetryEnabled, which return various telemetry status.MinecraftClient#getCurrentFpsandgetRenderTime, which are used inside telemetry records.GameOptions#getTelemetryOptInExtra, which returns the option for opt-in part of telemetry.LogFileCompressor, which provides rotated log file with Codec-based data serialization and automated Gzip compression.LogReaderandLogWriter, which reads from or writes to a log file.GameMenuScreen#disconnect, which disconnects from the server or exits the singleplayer game.OptionsScreen#createButton, which creates a button widget on the options screen.MoreOptionsDialog#toString, which stringifies anOptionalLong.GridWidget.Adder, which adds grid elements left to right, top to bottom, with the given max width.SimpleOption#ofBooleanoverload with value text getter parameter.SimpleOption#createButtonoverload with the change callback parameter.ClientWorld#putClientsideMapState, which is called in place ofputMapStateon the client.EntitySelector#getAppendLimit, which returns the limit of results appended to the intermediary list.ServerWorld#collectEntitiesByTypeandWorld#collectEntitiesByType, which collects entities, optionally with a limit for performance enhancement.ServerWorld#getPlayersoverload withlimitparameter.LookupContinuityGetter, which is a functional interface to check whether to keep iterating over entity lists.TestContext#useBlockoverload, which allows customBlockHitResultto be passed.TestContext#useStackOnBlock, which can testItem#onUsemethod.Util#getResult, which unwrapsDataResultand throws exceptions if the result is an error.Uuids#STRING_CODEC, which is a codec for UUID serialized as its string representation.
- Bundled Gson is now version 2.10. This added serialization of records. (However, I recommend Codec or another proper config library. Exposing the internal structure of a config class in a save data is generally not a good idea.)
TelemetrySenderis repackaged tonet.minecraft.client.util.telemetry(Welcome back!) and is renamed toTelemetryManager.ButtonWidgetbuilder methods are renamed to be more builder-y.- World generation related
RegistryKeysare now consistently named.