Potions/1.16

From Forge Community Wiki

A Potion is simply a list of Effects to be applied when used. Each Potion gets applied to every Items#POTION, Items#SPLASH_POTION, Items#LINGERING_POTION, and Items#TIPPED_ARROW. Like effects, potions need to be registered.

Creating a Potion

A Potion requires a passed in list of EffectInstances to apply to the player when the potion is "consumed". There is also a nullable parameter called baseName that can be set if you would like to use the same name for multiple potions (e.g. a SWIFTNESS and LONG_SWIFTNESS entry can be both swiftness potions).

Adding a Brewing Recipe

Brewing Recipes can be added using BrewingRecipeRegistry::addRecipe. The most common constructor takes in an Ingredient input, an Ingredient reactant, and an ItemStack output. This can be registered during FMLCommonSetupEvent.

Important

If you want to use NBT information in your inputs (e.g. create a potion from another potion), you need to pass in an NBTIngredient instead.

Alert

BrewingRecipeRegistry is not thread-safe. It should be called within enqueueWork in the specified parallel dispatch event.