Deprecated API
Contents
- 
Terminally Deprecated ElementsElementDescriptionUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUse extension methods inIGuiGraphicsExtensioninsteadUseItem.inventoryTick(ItemStack, Level, Entity, int, boolean)by checking that the slot argument is an armor slot. Armor slots are 36, 37, 38 and 39.UseItem.inventoryTick(ItemStack, Level, Entity, int, boolean)by checking that the slot argument is an armor slot. Armor slots are 36, 37, 38 and 39.Usethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main bus
- 
Deprecated ClassesClassDescriptionNeoForge: UseAdvancementProviderinstead, provides ease of access for theExistingFileHelperin the generatorForge: UseDatapackBuiltinEntriesProviderinsteadUse extension methods inIGuiGraphicsExtensioninstead
- 
Deprecated Enum Classes
- 
Deprecated Record ClassesRecord ClassDescription
- 
Deprecated FieldsFieldDescriptionForge: UsePresetEditorManager.get(ResourceKey)instead.UseConnectionProtocol.PacketSet.contextualIdToDeserializerinstead it allows for context to be passed to the deserializerNeo: use thedata mapinsteadForge: This map is patched out of vanilla code. Listen toBlockEvent.BlockToolModificationEventor overrideIBlockExtension.getToolModifiedState(BlockState, UseOnContext, net.neoforged.neoforge.common.ToolAction, boolean).Forge: UseRarity.getStyleModifier()Neo: Use thecompostabledata map instead, as this field will be ignored starting with 1.20.5.Neo: use thedata mapinstead.Avoid using this tag, especially on the client side, as optional tags, for now, do not exist after the registry rework.
- 
Deprecated MethodsMethodDescriptionRegister viaRegisterColorHandlersEvent.BlockRegister viaRegisterColorHandlersEvent.ItemNeo: UseIAbstractWidgetExtension.onClick(double, double, int)instead.Forge: Use gradient overload insteadUseRegisterMenuScreensEventto register menu screens + TODO 1.20.5: remove AT related to thisRegister viaRegisterParticleProvidersEventRegister viaRegisterParticleProvidersEventRegister viaRegisterParticleProvidersEventForge: useParticleEngine.render(PoseStack, MultiBufferSource.BufferSource, LightTexture, Camera, float, net.minecraft.client.renderer.culling.Frustum)with Frustum as additional parameterSet your render type in your block model's JSON (eg."render_type": "cutout") or overrideIBakedModelExtension.getRenderTypes(BlockState, net.minecraft.util.RandomSource, net.neoforged.neoforge.client.model.data.ModelData)Set your render type in your block model's JSON (eg."render_type": "cutout") or overrideIBakedModelExtension.getRenderTypes(BlockState, net.minecraft.util.RandomSource, net.neoforged.neoforge.client.model.data.ModelData)Set your render type in your block model's JSON (eg."render_type": "cutout") or overrideIBakedModelExtension.getRenderTypes(BlockState, net.minecraft.util.RandomSource, net.neoforged.neoforge.client.model.data.ModelData)Forge: Use item aware function belowForge: Use variant with RenderTypeGroupForge: For internal use only. Use the Register events when registering values.Forge: UseRegisterGameTestsEventto register game testsForge: UseRegisterGameTestsEventto register game testsForge: UseRegisterGameTestsEventto register game testsUseConnectionProtocol.CodecData.createPacket(int, FriendlyByteBuf, io.netty.channel.ChannelHandlerContext)instead, which provides the channel context for creating custom packet payloads.UseConnectionProtocol.PacketSet.createPacket(int, FriendlyByteBuf, io.netty.channel.ChannelHandlerContext)instead, which provides the channel context for creating custom packet payloads.UseBundlerInfo.unbundlePacket(Packet, Consumer, io.netty.channel.ChannelHandlerContext)instead, as it supports packet filtering and is more efficient.UseClientboundCustomPayloadPacket.readPayload(ResourceLocation, FriendlyByteBuf, io.netty.channel.ChannelHandlerContext, net.minecraft.network.ConnectionProtocol)instead, as this variant can only read vanilla payloads.UseServerboundCustomPayloadPacket.readPayload(ResourceLocation, FriendlyByteBuf, io.netty.channel.ChannelHandlerContext, net.minecraft.network.ConnectionProtocol)instead, as this variant can only read vanilla payloads.NeoForge: UseNeoForgeRegistries.ENTITY_DATA_SERIALIZERSinsteadUseServerCommonPacketListenerImpl.createCookie(ClientInformation, boolean)instead, keeping the connection type information available.Forge: Userider sensitive versionUseIEntityExtension.getStepHeight()to get the real step height value.Use attribute modifiers for theNeoForgeMod#STEP_HEIGHTattribute.UseIEntityExtension.getStepHeight()to get the real step height value.Forge: use overload with context.Forge: useCreativeModeTab.builder()Forge:invalid @linkUse damage source sensitive versionForge: Useinvalid @linkplaindamage source sensitive version Forge: UseBaseRailBlock.getRailDirection(BlockState, BlockGetter, BlockPos, net.minecraft.world.entity.vehicle.AbstractMinecart)for enhanced ability If you do change this property be aware that other functions in this/subclasses may break as they can make assumptions about this propertyForge: get burn times by calling CommonHooks#getBurnTime(ItemStack)Forge: UseIBlockStateExtension.getLightEmission(BlockGetter, BlockPos)insteadnet.minecraft.world.level.levelgen.synth.ImprovedNoise.noise(double, double, double, double, double) Forge: UseFlowingFluid.canConvertToSource(FluidState, Level, BlockPos)instead.Forge: useLavaFluid.isFlammable(LevelReader,BlockPos,Direction)insteadNeo: use the variant with a custom codec opsnet.minecraft.world.level.storage.loot.LootTable.getRandomItemsRaw(LootContext, Consumer<ItemStack>) ImplementIAttachmentSerializer.read(IAttachmentHolder, Tag)instead. This method will be removed in a future version.Usethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUsethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main busUseItem.inventoryTick(ItemStack, Level, Entity, int, boolean)by checking that the slot argument is an armor slot. Armor slots are 36, 37, 38 and 39.UseItem.inventoryTick(ItemStack, Level, Entity, int, boolean)by checking that the slot argument is an armor slot. Armor slots are 36, 37, 38 and 39.Usethe RL-explicit variantinstead; mod ID inference will be removed in a later update, alongside the move of registration events to the NeoForge main bus
- 
Deprecated ConstructorsConstructorDescriptionUseCommonListenerCookie(GameProfile, WorldSessionTelemetryManager, RegistryAccess.Frozen, FeatureFlagSet, String, ServerData, Screen, boolean)instead, to indicate whether the connection is modded.Forge: Use variant with RenderTypeGroupForge: Use the mod id variantForge: Use the mod id variantnet.minecraft.data.tags.CatVariantTagsProvider(PackOutput, CompletableFuture<HolderLookup.Provider>) Forge: Use the mod id variantnet.minecraft.data.tags.DamageTypeTagsProvider(PackOutput, CompletableFuture<HolderLookup.Provider>) Forge: Use the mod id variantnet.minecraft.data.tags.EntityTypeTagsProvider(PackOutput, CompletableFuture<HolderLookup.Provider>) Forge: Use the mod id variantForge: Use the mod id variantForge: Use the mod id variantForge: Use the mod id variantnet.minecraft.data.tags.InstrumentTagsProvider(PackOutput, CompletableFuture<HolderLookup.Provider>) Forge: Use the mod id variantForge: Use the mod id variantForge: Use the mod id variantForge: Use the mod id variantForge: Use the mod id variantForge: Use the mod id variantForge: Use the mod id variantForge: Use the mod id variantUseClientboundCustomPayloadPacket(FriendlyByteBuf, io.netty.channel.ChannelHandlerContext, net.minecraft.network.ConnectionProtocol)instead, as this variant can only read vanilla payloads.UseServerboundCustomPayloadPacket(FriendlyByteBuf, io.netty.channel.ChannelHandlerContext, net.minecraft.network.ConnectionProtocol)instead, as this variant can only read vanilla payloads.UseCommonListenerCookie(GameProfile, int, ClientInformation, boolean)instead, to indicate whether the connection is modded.Forge: UseTagFile(List, boolean, List)which has support for remove entries.Forge: UseDeferredSpawnEggIteminstead for suppliersFORGE: Use supplier version insteadNeo: use the constructorto support conditionsinvalid @linkwith a default value and id setter
IAttachmentSerializer.read(IAttachmentHolder, Tag)instead. This method will be removed in a future version.