接着上期教程,我们来为buff效果添加其专属的药水瓶。
1.在Java包中的init包中新建PotionInit类:
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<Potion> POTIONS = DeferredRegister.create(ForgeRegistries.POTIONS, Main.MOD_ID);
//第一个参数是我们药水的名字 后面跟上我们上期的药水
public static final RegistryObject<Potion> BURN_POTION = POTIONS.register("burn_potion",
() -> new Potion(new MobEffectInstance(EffectInit.BURN.get(), 200, 0)));
//public static final RegistryObject<Potion> 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\你的modid\lang
中的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",