Poções 1.20.4
Aprenda a adicionar poções customizadas para vários efeitos de estado.
WARNING
Esta página foi escrita para a versão 1.20.4. A documentação de versões antigas pode estar incompleta.
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.
Poções Personalizadas
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 PotionBrewing.addMix.
INFO
Quando o Fabric API está presente, PotionBrewing.addMix se torna acessível através de um Acess Widener.
Criando a Poção
Vamos começar declarando um campo para armazenar sua instância de Potion. Utilizaremos a classe inicializadora diretamente para segurar isso.
java
public class ExampleModPotions implements ModInitializer {
// #region register_potion
public static final Holder<Potion> TATER_POTION =
Registry.registerForHolder(
BuiltInRegistries.POTION,
Identifier.fromNamespaceAndPath(ExampleMod.MOD_ID, "tater"),
new Potion("tater",
new MobEffectInstance(
ExampleModEffects.TATER,
3600,1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Passamos uma instância de MobEffectInstance, que leva 3 parâmetros:
MobEffect type- Um efeito. Usamos nosso efeito personalizado aqui. Você também pode acessar efeitos vanilla através denet.minecraft.entity.effect.MobEffects.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.
Registrando a Poção
No nosso inicializador, chamamos PotionBrewing.addMix.
java
)1
addMix 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 PotionBrewing.addMix pode ser feita.
O exemplo completo:
java
No lines matched.1
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.FabricPotionBrewing.
Registrando a Poção Sem o Fabric API
Sem o Fabric API, PotionBrewing.addMix será privado. Para acessar este método, use o seguinte invocador de mixin ou use um Acess Widener.
java
Not Found: /home/runner/work/fabric-docs/fabric-docs/reference/latest/src/main/java/com/example/docs/mixin/potion/PotionBrewingInvoker.java1


