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() 内部自注册。
相关条目