PotionInit.java
package com.joy187.re8joymod.init;
import com.joy187.re8joymod.Main;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.item.alchemy.Potion;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class PotionInit {
public static final DeferredRegister POTIONS = DeferredRegister.create(ForgeRegistries.POTIONS, Main.MOD_ID);
//第一个参数是我们药水的名字 后面跟上我们上期的药水
public static final RegistryObject BURN_POTION = POTIONS.register("burn_potion",
() -> new Potion(new MobEffectInstance(EffectInit.BURN.get(), 200, 0)));
//public static final RegistryObject DEADLY_POTION = POTIONS.register("deadly_potion",
// () -> new Potion(new MobEffectInstance(EffectInit.DEADLY.get(), 200, 0)));
public static void register(IEventBus eventBus) {
POTIONS.register(eventBus);
}
}
2.在项目主类Main类的Main函数中添加我们药水的初始化函数:
public Main() {
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
ItemInit.ITEMS.register(bus);
BlockInit.BLOCKS.register(bus);
EntityInit.ENTITY_TYPES.register(bus);
EffectInit.EFFECTS.register(bus);
//添加药水初始化注册事件
PotionInit.POTIONS.register(bus);
SoundInit.SOUNDS.register(bus);
ModStructures.register(bus);
MinecraftForge.EVENT_BUS.register(this);
}
3.在resources你的modidlang中的en_us.json中添加我们三种药水(普通型、投掷型、滞留型)的名称:
"item.minecraft.potion.effect.burn_potion": "E Decay Potion", "item.minecraft.splash_potion.effect.burn_potion": "Splash Potion of E Decay", "item.minecraft.lingering_potion.effect.burn_potion": "Lingering Potion of E Decay",4.保存所有文件 -> 进入游戏测试: 把药水丢出去看看!



