🇧🇷 Português (Portuguese - Brazil)
🇧🇷 Português (Portuguese - Brazil)
Aparência
🇧🇷 Português (Portuguese - Brazil)
🇧🇷 Português (Portuguese - Brazil)
Aparência
This page is written for version:
1.20.4
Poções são consumíveis que concedem efeitos a uma entidade. Um jogador pode preparar poções usando um Suporte de Poções ou obtê-las como itens através de várias outras mecânicas do jogo.
Adicionar uma poção é um processo similar ao de adicionar um item. Você criará uma instância de sua poção e a registrará chamando BrewingRecipeRegistry.registerPotionRecipe.
INFO
Quando o Fabric API está presente, BrewingRecipeRegistry.registerPotionRecipe se torna acessível através de um Acess Widener.
Vamos começar declarando um campo para armazenar sua instância de Potion. Utilizaremos a classe inicializadora diretamente para segurar isso.
public class ExampleModPotions implements ModInitializer {
	public static final Potion TATER_POTION =
			Registry.register(
					Registries.POTION,
					Identifier.of(ExampleMod.MOD_ID, "tater"),
					new Potion("tater",
							new StatusEffectInstance(
									ExampleModEffects.TATER,
									3600,
									0)));Passamos uma instância de StatusEffectInstance, que leva 3 parâmetros:
StatusEffect type - Um efeito. Usamos nosso efeito personalizado aqui. Você também pode acessar efeitos vanilla através de net.minecraft.entity.effect.StatusEffects.int duration - Duração do efeito em ticks do jogo.int amplifier - Um amplificador para o efeito. Por exemplo, Pressa II teria um amplificador de 1.INFO
Para criar seu próprio efeito, consulte o guia de Efeitos.
No nosso inicializador, chamamos BrewingRecipeRegistry.registerPotionRecipe.
public void onInitialize() {registerPotionRecipe leva 3 parâmetros:
Potion input - A poção inicial. Normalmente isso pode ser uma Garrafa de Água ou uma Poção Estranha.Item item - O item que é o ingrediente principal da poção.Potion output - A poção resultante.Se você usa a Fabric API, o invocador de mixin não é necessário e uma chamada direta do BrewingRecipeRegistry.registerPotionRecipe pode ser feita.
O exemplo completo:
public class ExampleModPotions implements ModInitializer {
	public static final Potion TATER_POTION =
			Registry.register(
					Registries.POTION,
					Identifier.of(ExampleMod.MOD_ID, "tater"),
					new Potion("tater",
							new StatusEffectInstance(
									ExampleModEffects.TATER,
									3600,
									0)));
	@Override
	public void onInitialize() {
		FabricBrewingRecipeRegistryBuilder.BUILD.register(builder -> {
			builder.registerPotionRecipe(
					// Input potion.
					Potions.WATER,
					// Ingredient
					Items.POTATO,
					// Output potion.
					Registries.POTION.getEntry(TATER_POTION)
			);
		});
	}
}Assim que registrada, você pode preparar uma poção Tater usando uma batata.

Registrando Poções usando um Ingredient
Com ajuda do Fabric API, é possível registrar uma poção usando um Ingredient em vez de um Item usando net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.
Sem o Fabric API, BrewingRecipeRegistry.registerPotionRecipe será privado. Para acessar este método, use o seguinte invocador de mixin ou use um Acess Widener.
Not Found: /home/runner/work/fabric-docs/fabric-docs/reference/latest/src/main/java/com/example/docs/mixin/potion/BrewingRecipeRegistryInvoker.java