Configuration
基本信息
| 属性 | 值 |
|---|---|
| 类型 | Forge Configuration(文件 <mcDir>/config/BetterAchievements.cfg) |
| 加载类 | ConfigHandler |
| 配置类别 | Configuration.CATEGORY_GENERAL(唯一类别) |
配置项总览
| Key | 默认 | 类型 | 说明 |
|---|---|---|---|
scrollButtons |
true |
boolean | 是否显示左右翻页按钮(< / >) |
cantUnlockArrowColour |
"#000000" |
字符串 | 不可解锁成就的箭头颜色(#RRGGBB 或 rainbow<freqR>,<freqG>,<freqB>,<phaseR>,<phaseG>,<phaseB>,<center>,<width>,<length>) |
canUnlockArrowColour |
"#00FF00" |
字符串 | 可解锁成就的箭头颜色(同上格式) |
completeArrowColour |
"#A0A0A0" |
字符串 | 已解锁成就的箭头颜色(同上格式) |
userColourOverride |
false |
boolean | 若为 true,强制使用以上三项设置的颜色覆盖任何 mod 提供的 ICustomArrows 实现 |
iconReset |
false |
boolean | 若为 true,游戏中在成就上按鼠标中键会把该页签图标改成该成就图标 |
listTabIcons |
String[0] |
字符串数组 | 用户手动设置的页签图标列表,格式 PageName->modid:item:meta:nbtJson |
颜色字符串解析
由 ConfigHandler.loadConfig() 中三段相同代码完成:
if (colourCode.startsWith("#")) {
GuiBetterAchievements.colourXxxRainbow = false;
GuiBetterAchievements.colourXxx = ColourHelper.RGB(colourCode);
} else if (colourCode.startsWith("rainbow")) {
GuiBetterAchievements.colourXxxRainbow = true;
GuiBetterAchievements.colourXxxRainbowSettings = ColourHelper.getRainbowSettings(colourCode);
}
| 前缀 | 行为 |
|---|---|
# |
ColourHelper.RGB("#RRGGBB") 解析为 int 颜色 |
rainbow |
ColourHelper.getRainbowSettings(...) 解析为 9 个 float 参数,每帧由 ColourHelper.getRainbowColour(params) 实时生成颜色 |
listTabIcons 格式
每行:PageName->modid:item:meta:nbtJson
例:MyPage->minecraft:diamond:0: 或 MyPage->minecraft:diamond_sword:0:{display:{Name:"Sharp"}}
PageName是AchievementPage.getName()。modid:item用GameRegistry.findItem(modid, name)解析。meta缺失时为 0;解析失败记录日志但跳过该行。nbtJson缺失或空时为 null;用JsonToNBT.func_150315_a(json)解析为NBTTagCompound。- 用户每次进入世界(
WorldEvent.Load)→AchievementRegistry.setUserSetIcons(...)重建userSetIcons。 - 世界卸载(
WorldEvent.Unload)→ConfigHandler.saveUserSetIcons()写回配置。
相关条目
- ConfigHandler - 加载/保存逻辑
- GuiBetterAchievements - 读取
colourXxx/scrollButtons/iconReset/userColourOverride - ColourHelper -
#RRGGBB与rainbow解析 - AchievementRegistry -
setUserSetIcons/dumpUserSetIcons - SaveHandler - 触发写回的钩子
- ModGuiConfig - 通过
ConfigHandler.getConfigElements()显示在 GUI