AppleCore

基本信息

属性 值
类名 squeek.applecore.AppleCore
modid AppleCore
注解 @Mod(modid=ModInfo.MODID, name=ModInfo.MODID, guiFactory=ModInfo.GUI_FACTORY_CLASS, acceptedMinecraftVersions="[1.7.10]")
生命周期 preInit / init / onServerStarting / onConfigChanged
启用版本 Minecraft 1.7.10

功能

mod 主类。不注册任何游戏内容,只做三件事:初始化配置、强制 API 实现单例、 按加载端挂接客户端/服务端处理器。

阶段 行为
preInit ModConfig.init → 触发 3 个 API 实现枚举初始化 → 注册 FML 总线
init SyncHandler.init;客户端额外初始化 3 个 overlay handler
onServerStarting Commands.init 注册 /hunger
onConfigChanged 仅当 event.modID 等于本 modid 时 ModConfig.sync()

实现要点

  • acceptedRemoteVersions = "*":允许任意远端版本加入。
  • dependencies 未声明(无硬依赖)。
  • acceptableRemoteVersions 与 acceptedMinecraftVersions 同时存在, 两者含义不同,源码未加注释说明。
  • preInit 中三行 AppleCoreXxxImpl.values() 看似无副作用调用, 实际目的是触发类加载使 AppleCoreAPI 的静态字段被赋值。
  • init 中客户端分支注册的 TooltipOverlayHandler 走 FML 总线 (@Mod.EventBus 语义),另两个走 init() 内部自注册。

相关条目