欢迎光临散文网 会员登陆 & 注册

关于事件不同总线

2022-10-23 18:37 作者:道家深湖  | 我要投稿

今天有个人在我群贴了如下代码。他抄harbinger,想注册维度,但没注册上。

那当然注册不上。


Harbinger的维度教程:

https://harbinger.covertdragon.team/chapter-19/dimension/


Harbinger的事件教程:

https://harbinger.covertdragon.team/chapter-03/

注意,FML 的那几个用于 Mod 加载的事件不算。那些是 Mod 加载周期的事件,在那个时候 FML 需要使用别的事件总线(具体来说,是 Guava 的事件总线)。

——Harbinger


当你看到EventHandler和FMLPreInitializationEvent的时候,你就知道这玩意显然不是随便自己开个类,打个EventBusSubscriber就完事的。这东西得写在主类里。Harbinger教程没说,但你一看,心里应该大概有个数。

那注册纬度和item的registry区别在哪里? item直接SubscribeEvent就注册了。

——群友

事件有两种,分布在不同的总线。
通俗点说,一个是底层的,一个是表层的

注册物品用的是表层的总线“RegistryEvent.Register<Item>”,用SubscribeEvent+EventBusSubscriber这种方式监听。FMLPreInitializationEvent这种是底层的事件,在主类里用EventHandler监听。
FMLPreInitializationEvent、FMLInitializationEvent、FMLPostInitializationEvent、FMLServerStartingEvent,这种你一看FML开头的,绝对不是善茬,肯定是写在主类那种底层事件。



关于事件不同总线的评论 (共 条)

分享到微博请遵守国家法律