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());

相关条目