SaveHandler
基本信息
| 属性 | 值 |
|---|---|
| 类名 | betterachievements.handler.SaveHandler |
| 源文件 | src/main/java/betterachievements/handler/SaveHandler.java |
| 事件总线 | MinecraftForge.EVENT_BUS(订阅 WorldEvent.Unload / WorldEvent.Load) |
功能
管理 AchievementPage 用户自选图标(listTabIcons 配置项)的生命周期:
- 进入世界(
WorldEvent.Load)→ 把静态字段userSetIcons解析为Map<String, ItemStack>注入AchievementRegistry.userSetIcons。 - 离开世界(
WorldEvent.Unload)→ 把AchievementRegistry.dumpUserSetIcons()写回SaveHandler.userSetIcons,再调用ConfigHandler.saveUserSetIcons()持久化到配置文件。
静态字段
| 字段 | 说明 |
|---|---|
String[] userSetIcons |
用户在配置中设置的 PageName->modid:item:meta:nbtJson 列表,初始值 new String[0] |
事件处理逻辑
@SubscribeEvent
public void onWorldUnload(WorldEvent.Unload event) {
ConfigHandler.saveUserSetIcons(); // 把 AchievementRegistry 当前的 userSetIcons 写回配置
}
@SubscribeEvent
public void onWorldLoad(WorldEvent.Load event) {
AchievementRegistry.instance().setUserSetIcons(userSetIcons); // 把配置中的 userSetIcons 注入 registry
}
注册
由 ClientProxy.registerHandlers() 注册:
MinecraftForge.EVENT_BUS.register(new SaveHandler());
相关条目
- AchievementRegistry -
setUserSetIcons/dumpUserSetIcons - ConfigHandler -
saveUserSetIcons(写文件) - Configuration -
listTabIcons配置项格式