• 论坛

导航

  • 主页
  • 样式指南
  • 入门
    • 概述
    • Mod的结构
    • Forge更新检查器
    • 依赖管理
    • 调试分析器
  • 概念
    • Sides
    • 资源
    • 注册表
    • Jar签名
    • 国际化和本地化
  • 方块
    • 概述
    • 介绍方块状态
    • 方块互动
  • 动画 API
    • 概述
    • 骨骼
    • 动画状态机
    • 使用API
  • TileEntity
    • 概述
    • 特殊渲染器
  • 物品
    • 主页
    • 战利品表
  • 模型
    • 模型概述
    • 模型文件
    • 方块状态
      • 方块状态JSON概述
      • Forge方块状态JSON
    • 绑定模型到方块和物品
    • 彩色纹理
    • 物品属性概述
    • 高级模型(未翻译)
      • 高级模型介绍
      • IModel
      • IModelState and IModelPart
      • IBakedModel
      • Extended Blockstates
      • Perspective
      • ItemOverrideList
      • ICustomModelLoader
  • 渲染
    • TileEntityItemStackRenderer
  • 事件
    • 基本用法
  • 网络
    • 主页
    • 概述
    • SimpleImpl
    • 实体
  • 数据储存
    • 能力系统
    • World Saved Data
    • 拓展实体属性
    • Config注解
  • 工具
    • 合成
    • 矿物词典
    • 权限API
  • 效果
    • 音效
  • 惯例
    • 版本命名
    • 文件位置
    • 加载阶段
      • 预初始化
      • 初始化
      • 后初始化
      • 其它重要的事件
  • 参与Forge开发
    • 入门
    • PR指南

加载阶段

Forge加载mod主要分为三个阶段:预初始化(Pre-Initialization)、初始化(Initialization)、后初始化(Post-Initialization)。通常简写为preInit,init,postInit。根据你mod功能的不同,其他的一些事件可能也很重要。由于这三个阶段在不同时间点发生,在每个阶段内能做的事情都是不同的。

提示

加载阶段的事件只能在你的 @Mod 类中使用,并且对应的方法上要加上 @EventHandler 注解(Annotation)。

重要

之前在加载阶段事件处理器中注册的很多对象(方块、物品、合成表等)现在都应该使用RegistryEvent来注册。
这就能让我们在运行时动态重载Mod,而使用加载阶段则无法达到这一目的(因为它们只在程序启动时被调用一次)。
RegistryEvent会在预初始化之后被触发。

预初始化

在预初始化阶段中,你需要让游戏知道你的mod中添加的所有方块、物品等东西。这个阶段对应的事件是 FMLPreInitializationEvent。在preInit中一般你可以:

  • 注册方块(Block)和物品(Item)到 GameRegistry
  • 注册Tile Entity
  • 注册实体(Entity)
  • 分配矿物词典(Ore Dictionary)名字

初始化

在初始化阶段中,你需要注册或者完成一些依赖于物品和方块(在preInit中注册)的东西。这个阶段的事件是 FMLInitializationEvent。在init中一般你可以:

  • 注册世界生成器(World Generator)
  • 注册合成配方(Recipe)
  • 注册事件处理器(Event Handler)
  • 发送IMC(Intermod Communication,Mod间交互)信息

后初始化

在后初始化阶段中,你的mod通常会进行一些依赖或被依赖于其它mod的动作。这个阶段的事件是 FMLPostInitializationEvent。在postInit中一般你可以:

  • Mod兼容,或者任何需要其它mod的init阶段完成后进行的东西

其它重要的事件

  • IMCEvent:处理接收到的IMC信息
  • FMLServerStartingEvent:注册指令(Command)
基于 MkDocs 使用自定义主题构建. 托管于 Read the Docs.
启用夜间模式