Current master
- Crafting recipes and CrafitnScreenHandler receive a
RecipeInputInventory
instead of aCraftingInventory
. - Data pack format changed to 15. (Format range not supported in this version.) (Not really a breaking change.)
- Recipe constructors no longer take an ID
- Recipe
Serializer
must be backed up by aCodec
- Loot functions require a
Codec
instead of aSerializer
- Loot functions take conditions as a
List
instead of as an arrays. - Trades should also be registered for the Trade Rebalance feature.
- CraftingScreenHandler receives recipes wrapped inside a
RecipeEntry
Text.Serializer::toJson
was renamed toText.Serialization::toJsonString
. (Yarn Mapping change)CraftingRecipeCategory::CODEC::byId
was removed. In packets, usereadEnumConstant
instead.- The field
CraftingRecipeCategory::CODEC
had its signature changed; obtain it viaStringIdentifiable::createCodec
instead.
- Item componentization fundamentally changes the structure of variant-locked paintings.
PaintingEntity::VARIANT_NBT_KEY
was removed. Use literal instead.Codecs.createStrictOptionalFieldCodec
was removed; useConditionalLootFunction::addConditionsField
instead. (Formerly known asmethod_53344
)LootFunctionType
now has a type parameter.- The constructor of
LootFunctionType
now takes aMapCodec
. DecorationItem::appendTooltip
now takes aItem$TooltipContext
argument instead of a world.- The old
TooltipContext
was renamed toTooltipType
. (Yarn Mapping only ?)
- The painting registry is no longer static and must be accessed from the world.
PaintingVariants
now measure their width and height in blocks.TooltipType
was moved to a different packageModelLoader::modelsToBake
now takesModelIdentifer
s as key
- (Yarn?)
DynamicRegistryManager::get
renammed togetOrThrow
- (Yarn?)
Registry::getOrEmpty
renammed togetOptionalValue
Registry::streamTags
now wraps its values insideNamed<>
's
Entity.dropItem()
now requires a ServerWorld as parameter.