API 参考 / 事件系统
GameStartupEvent 与 GameShutdownEvent
这一对事件用于进程级生命周期:GameStartupEvent 描述「装配结束、进入主循环之前」,GameShutdownEvent 描述「释放资源之前」。二者都是纯通知、不可取消,且没有可读访问器。
实现核验:在当前宿主源码中未检索到这两个事件的构造或投递点(全仓仅测试模组订阅)。也就是说,契约仍然成立,但实际订阅可能永远收不到。可靠的初始化 / 收尾时机请使用 Mod#onInit / Mod#onUnload,不要依赖这两个事件。
方法速览
| 方法 | 用途 |
|---|---|
GameStartupEvent() | 构造器(无参数、无状态) |
GameShutdownEvent() | 构造器(无参数、无状态) |
GameStartupEvent()
java
public GameStartupEvent();行为:构造一个纯通知事件。若收到,说明宿主装配已完成而主循环尚未开始;此时尚无场景,不要做需要场景或渲染上下文的操作。
GameShutdownEvent()
java
public GameShutdownEvent();行为:构造一个纯通知事件。若收到,应在回调返回前完成收尾(关闭自建线程 / 连接、落盘缓存);该回调返回后宿主即开始释放资源,不得发起耗时操作,也不得依赖游戏线程继续运行。
示例
java
ctx.eventBus().subscribe(GameShutdownEvent.class, event -> {
flushPendingStats();
});完整签名
java
public final class GameStartupEvent extends Event {
public GameStartupEvent();
}
public final class GameShutdownEvent extends Event {
public GameShutdownEvent();
}稳定性:2.0 起冻结,2.x 内只增不破。