Minecraft 1.18.1、1.18.2模组开发 14.自定义药水(Potion)

接着上期教程,我们来为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",
4.保存所有文件 -> 进入游戏测试:

po.png

把药水丢出去看看!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay_fearless

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值