配置系统(NechConfig)

基本信息

属性 值
类型 Forge Configuration 配置加载器
实现类 net.vfyjxf.nechar.NechConfig
配置文件 config/NotEnoughCharacters.cfg
加载时机 static 初始化块——类一旦被加载立即 loadConfig(new File("config/NotEnoughCharacters.cfg")),源码注释说明"这样读者能拿到最新值"
写回时机 if (config.hasChanged()) config.save();
配置分类 5 个:transformers、fuzzy、general、nei、search

全部配置项

transformers 分类

键名 类型 配置默认值 字段 说明
DefaultTransformerRegExp 字符串列表 4 项正则目标(见下表) defaultTransformerRegExp 只读展示项,每次加载被代码常量强制覆盖,注释标注 THIS IS GENERATED BY NECH, DON'T EDIT!
DefaultTransformerString 字符串列表 22 项子串目标 defaultTransformerStringList 同上,只读且被强制覆盖
AdditionalTransformerRegExpList 字符串列表 [] 空 transformerRegExpAdditionalList 用户追加的正则改写目标,格式 全限定类路径$内部类:方法名
AdditionalTransformerStringList 字符串列表 [] 空 transformerStringAdditionalList 用户追加的子串改写目标,格式同上
transformerMethodBlackList 字符串列表 [] 空 transformerMethodBlackList 黑名单,对正则与子串两种转换器同时生效

DefaultTransformerRegExp 的 4 项默认值:appeng.client.me.ItemRepo:updateView、net.p455w0rd.wirelesscraftingterminal.client.me.ItemRepo:updateView、com.glodblock.github.client.me.FluidRepo:addEntriesToView、com.glodblock.github.client.me.EssentiaRepo:updateView(完整清单与对应界面见 默认转换目标列表)。

fuzzy 分类(模糊拼音)

全部为 boolean,默认全部 false。这些值经 NotEnoughCharacters.onConfigChange() 提交给 PinIn 的 config() 链式接口。

键名 类型 默认值 字段 含义
EnableFU2V boolean false EnableFU2V 启用模糊 U ⇄ V
EnableFZh2Z boolean false EnableFZh2Z 启用模糊 Zh ⇄ Z
EnableFSh2S boolean false EnableFSh2S 启用模糊 Sh ⇄ S
EnableFCh2C boolean false EnableFCh2C 启用模糊 Ch ⇄ C
EnableFAng2An boolean false EnableFAng2An 启用模糊 Ang ⇄ An
EnableFIng2In boolean false EnableFIng2In 启用模糊 Ing ⇄ In
EnableFEng2En boolean false EnableFEng2En 启用模糊 Eng ⇄ En

提交顺序(onConfigChange):fZh2Z → fSh2S → fCh2C → fAng2An → fIng2In → fEng2En → fU2V → keyboard → commit。

general 分类

键名 类型 默认值 字段 说明
KeyboardType 字符串 "quanpin" KeyboardType(Spell 枚举) 配置注释只列出 quanpin、daqian、xiaohe、ziranma 四个"可接受选项",但 Spell 枚举与 /nech keyboard 实际支持 9 个方案

解析逻辑:读入字符串后 Spell.valueOf(keyboardTypeString.toUpperCase());若抛 IllegalArgumentException,打印 Invalid keyboard type: <值> 错误日志并回退到 Spell.QUANPIN。

nei 分类

键名 类型 配置默认值 字段 说明
allowedLanguages 字符串列表 ["zh_CN", "zh_TW"] neiAllowedLanguages 拼音搜索生效的语言白名单,注释为 List of languages PinIn is used for;用于过滤物品列表的全部语言得到"匹配语言"(见 搜索提供者)

search 分类

键名 类型 默认值 字段 说明
enableIgnoreComma boolean false enableIgnoreComma 数字间忽略千分位逗号;仅当搜索文本本身不含 , 时生效(见 NecharUtils.contain)
enableVoltageSpecialSearchName boolean false enableVoltageSpecialSearchName 物品名单独搜索电压等级;注释明确警告 !Slow!
enableVoltageSpecialSearchTooltips boolean false enableVoltageSpecialSearchTooltips 提示文本单独搜索电压等级;注释同样标注 !Slow!

非配置文件字段

字段 类型 初始值 修改途径
enableVerbose boolean false 仅 /nech verbose <true|false>(见 /nech 命令)
KeyboardType Spell 枚举 QUANPIN 配置文件 KeyboardType,或 /nech keyboard(后者不写回文件)

字段初始值与配置默认值的差异

源码中的字段声明初始值与 config.get 传入的默认值并不总是一致,因为 static 块会立即用配置文件覆盖:

字段 字段声明初始值 配置默认值(实际生效)
neiAllowedLanguages new String[0] ["zh_CN", "zh_TW"]
transformerRegExpAdditionalList new String[0] []
transformerStringAdditionalList new String[0] []
transformerMethodBlackList new String[0] []
KeyboardType Spell.QUANPIN 由 KeyboardType 字符串解析,失败回退 QUANPIN

defaultTransformerRegExp / defaultTransformerStringList 的字段初始值本身就是常量数组,与配置默认值相同。

Spell 枚举(9 个值)

每个枚举值持有一个 public final Keyboard keyboard 字段,由构造器注入:

枚举常量 me.towdium.pinin.Keyboard
QUANPIN Keyboard.QUANPIN
DAQIAN Keyboard.DAQIAN
XIAOHE Keyboard.XIAOHE
ZIRANMA Keyboard.ZIRANMA
SOUGOU Keyboard.SOUGOU
GUOBIAO Keyboard.GUOBIAO
MICROSOFT Keyboard.MICROSOFT
PINYINPP Keyboard.PINYINPP
ZIGUANG Keyboard.ZIGUANG

setKeyboard(Spell) 会赋值并立即调用 NotEnoughCharacters.onConfigChange() 提交到 PinIn。

相关条目