Deprecated API
Contents
-
ElementDescriptionNeo: Use
CrashReportCategory.setStackTrace(StackTraceElement[])
instead.Neo: The additional mod ID parameter is unused; use the one-parameter constructor instead.Neo: Avoid using this method to get the mod ID, as this method will be removed in 1.21.2.UseRegisterClientExtensionsEvent
insteadNeo: To be removed without replacement since registry replacement is not a feature anymore.UseRegisterClientExtensionsEvent
insteadNeo: To be removed without replacement since registry replacement is not a feature anymore.UseRegisterClientExtensionsEvent
insteadPlanned on being removed in 1.21.1 due to extreme maintenance burden to make this event fire consistently for most screens.Use extension methods inIGuiGraphicsExtension
insteadUse a data component/attachment to store info, orEntity.load(CompoundTag)
as a replacement.Use a data component/attachment to store info. (Entity.setData(AttachmentType, Object)
)To be replaced with hand sensitive version in 21.2To be replaced with hand sensitive version in 21.2UseTagBuilder.remove(TagEntry)
instead.UseITagBuilderExtension.removeElement(ResourceLocation)
instead.UseITagBuilderExtension.removeElement(ResourceLocation)
instead.This type often causes more data corruption than is worth.UseWandererTradesEvent(List, List, RegistryAccess)
insteadUseFluidStack.getHoverName()
instead.PreferFluidStack.getHoverName()
.UseRegisterClientExtensionsEvent
insteadScheduled for removal in 1.21.2; useDeferredRegister.createDataComponents(ResourceKey, String)
withRegistries.DATA_COMPONENT_TYPE
insteadScheduled for removal in 1.21.2; useDataComponents(ResourceKey, String)
-
ClassDescriptionNeoForge: Use
AdvancementProvider
instead, provides ease of access for theExistingFileHelper
in the generatorForge: UseDatapackBuiltinEntriesProvider
insteadPlanned on being removed in 1.21.1 due to extreme maintenance burden to make this event fire consistently for most screens.Use extension methods inIGuiGraphicsExtension
insteadThis type often causes more data corruption than is worth.
-
Record ClassDescription
-
FieldDescriptionForge: Use
PresetEditorManager.get(ResourceKey)
instead.Neo: use thedata map
insteadNeo: use thedata map
insteadNeoforge: useIPlayerExtension.mayFly()
to read andNeoForgeMod.CREATIVE_FLIGHT
Attribute to modifyNeo: Will beBlocks.AIR
for modded boat types, useBoat.Type.planksSupplier
insteadForge: This map is patched out of vanilla code. Listen toBlockEvent.BlockToolModificationEvent
or overrideIBlockExtension.getToolModifiedState(BlockState, UseOnContext, net.neoforged.neoforge.common.ItemAbility, boolean)
.Use theinverse map
generated from the data map, this field will be ignored in a future versionNeo: Use thedata map
, this field will be ignored in a future versionNeo: Use thecompostable
data map insteadNeo: Usethe data map
, this field will be ignored in a future versionNeo: Use theinverse map
generated from the data map, this field will be ignored in a future versionNeo: use thedata map
instead.
-
MethodDescriptionNeo: call
Camera.setRotation(float, float, float)
insteadRegister viaRegisterColorHandlersEvent.Block
Register viaRegisterColorHandlersEvent.Item
Neo: UseIAbstractWidgetExtension.onClick(double, double, int)
instead.Forge: Use gradient overload insteaduseRegisterMenuScreensEvent
insteadRegister viaRegisterParticleProvidersEvent
Register viaRegisterParticleProvidersEvent
Register viaRegisterParticleProvidersEvent
Neo: use overload that accepts BlockStateSet 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 variant with RenderTypeGroupForge: For internal use only. Use the Register events when registering values.Neo: UseCrashReportCategory.setStackTrace(StackTraceElement[])
instead.Neo: Avoid using this method to get the mod ID, as this method will be removed in 1.21.2.Forge: UseRegisterGameTestsEvent
to register game testsForge: UseRegisterGameTestsEvent
to register game testsForge: UseRegisterGameTestsEvent
to register game testsUseBundlerInfo.unbundlePacket(Packet, Consumer, io.netty.channel.ChannelHandlerContext)
instead, as it supports packet filtering and is more efficient.Neo: use overload with ConnectionType contextNeoForge: UseNeoForgeRegistries.ENTITY_DATA_SERIALIZERS
insteadUseServerCommonPacketListenerImpl.createCookie(ClientInformation, net.neoforged.neoforge.network.connection.ConnectionType)
instead, keeping the connection type information available.UseRegisterClientExtensionsEvent
insteadForge: Userider sensitive version
Neo: Useinvalid reference
net.neoforged.neoforge.common.IShearable#isShearable(net.minecraft.world.item.ItemStack, net.minecraft.world.level.Level, net.minecraft.core.BlockPos)
Neo: Useinvalid reference
net.neoforged.neoforge.common.IShearable#onSheared(net.minecraft.world.entity.player.Player, net.minecraft.world.item.ItemStack, net.minecraft.world.level.Level, net.minecraft.core.BlockPos, int)
Neo: Modders should useRegisterSpawnPlacementsEvent
instead.Neo: useFeatureFlagRegistry.Builder.create(ResourceLocation, boolean)
insteadNeo: To be removed without replacement since registry replacement is not a feature anymore.Forge: useCreativeModeTab.builder()
Neo: UseIItemStackExtension.isPrimaryItemFor(Holder)
This method does not respectIItemStackExtension.supportsEnchantment(Holder)
since theHolder
is not available, which makes the result of calling it invalid.Neo: UseEnchantmentHelper.getTagEnchantmentLevel(Holder, ItemStack)
for NBT enchantments, orIItemStackExtension.getEnchantmentLevel(Holder)
for gameplay.Neo: Use ItemStack sensitive version.UseRegisterClientExtensionsEvent
insteadNeo: do not use, usethe event
insteadNeo: Useinvalid reference
net.neoforged.neoforge.client.util.TooltipUtil#addAttributeTooltips
Neo: UseItemStack.getTagEnchantments()
for NBT enchantments, orIItemStackExtension.getAllEnchantments(net.minecraft.core.HolderLookup.RegistryLookup<net.minecraft.world.item.enchantment.Enchantment>)
for gameplay.Forge: Use damage source sensitive versionUse ItemStack sensitive versionProjectileWeaponItem.getAllSupportedProjectiles(ItemStack)
Use ItemStack sensitive versionProjectileWeaponItem.getSupportedHeldProjectiles(ItemStack)
NeoForge: UseRarity.getStyleModifier()
Neo: To be removed without replacement since registry replacement is not a feature anymore.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 propertyUseRegisterClientExtensionsEvent
insteadNeo: get burn times by callingIItemStackExtension.getBurnTime(RecipeType)
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)
insteadnet.minecraft.world.level.storage.loot.LootTable.getRandomItemsRaw(LootContext, Consumer<ItemStack>) Use a data component/attachment to store info, orEntity.load(CompoundTag)
as a replacement.Use a data component/attachment to store info. (Entity.setData(AttachmentType, Object)
)To be replaced with hand sensitive version in 21.2To be replaced with hand sensitive version in 21.2UseTagBuilder.remove(TagEntry)
instead.UseITagBuilderExtension.removeElement(ResourceLocation)
instead.UseITagBuilderExtension.removeElement(ResourceLocation)
instead.UseFluidStack.getHoverName()
instead.PreferFluidStack.getHoverName()
.UseRegisterClientExtensionsEvent
insteadScheduled for removal in 1.21.2; useDeferredRegister.createDataComponents(ResourceKey, String)
withRegistries.DATA_COMPONENT_TYPE
instead
-
ConstructorDescriptionForge: 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 variantForge: 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 variantNeo: 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 variantNeo: The additional mod ID parameter is unused; use the one-parameter constructor instead.Forge: Use the mod id variantNeo: use overload with ConnectionType contextUseCommonListenerCookie(GameProfile, int, ClientInformation, boolean, net.neoforged.neoforge.network.connection.ConnectionType)
instead, to indicate whether the connection is modded.Neo: useMetadata(Component,PackCompatibility,FeatureFlagSet,List,boolean)
insteadForge: UseTagFile(List, boolean, List)
which has support for remove entries.Neo: useFeatureFlag(FeatureFlagUniverse, int, int, boolean)
insteadForge: UseDeferredSpawnEggItem
instead for suppliersNeo: use the constructorinvalid reference
with a default value and id setter
UseWandererTradesEvent(List, List, RegistryAccess)
insteadScheduled for removal in 1.21.2; useDataComponents(ResourceKey, String)