Config

基本信息

属性 值
配置文件 event.getSuggestedConfigurationFile()(OpenGlasses.java:74)
源码类 OpenGlasses(配置直接在主类中读取)
配置项总数 3
配置分类 Energy(2 项)、ChatBox(1 项)
保存时机 postInit 末尾 config.save()(OpenGlasses.java:139)

3 项配置

分类 配置键 类型 默认 说明(源码原文)
Energy energyBuffer int 100 无说明文本
Energy energyMultiplier double 1.0 PowerDrain= (NumberOfWidgets / 10) * energyMultiplier
ChatBox allowedCommands String[] {"/msg", "/w", "/tell"} “List of commands that glasses are allowed to use via the ChatBox.”

(OpenGlasses.java:75-85)

energyMultiplier 的耗电公式

配置说明给出了明确公式:

PowerDrain = (NumberOfWidgets / 10) * energyMultiplier
  • 耗电与图元数量成正比——每 10 个图元为一个计费单位
  • energyMultiplier 是整体倍率,默认 1.0

对应的 Lua 可操作对象见 Widget System。

⚠️ 耗电不在 onWornTick 中扣除。item/OpenGlassesItem.java:150 的 onWornTick(ItemStack, EntityLivingBase) 是空实现 {}。把「每 tick 耗电」写成该方法的行为属于幻觉——真实耗电按上述公式与图元数量计算。

energyBuffer 的读法陷阱

energyBuffer = config.get("Energy", "energyBuffer", 100).getInt(100);

用的是 Property.getInt(int) 重载——默认值由第二个参数 100 决定,与 get 的第三参数 100 恰好相同,故不会产生不一致。energyMultiplier 同理(getDouble(1.0))。

allowedCommands 默认值

默认 new String[] { "/msg", "/w", "/tell" }(:81-85)——眼镜通过 ChatBox 只允许使用这三个聊天命令。

该白名单配合 AR Glasses 的 ChatBox 升级(HasChatBoxUpgrade NBT 标记)生效:未安装升级的眼镜无法使用 ChatBox。

运行时软依赖标志(不是配置项)

init 阶段探测三个模组(OpenGlasses.java:90-92),结果存入静态布尔而非配置:

静态字段 判定 作用
OpenGlasses.baubles Loader.isModLoaded("Baubles") 启用 Baubles 饰品槽
OpenGlasses.tinkers Loader.isModLoaded("TConstruct") 启用 TConstruct 饰品槽
OpenGlasses.computronics Loader.isModLoaded("computronics") 注册 ChatBox 升级配方

三者不能通过配置文件关闭,只能靠模组是否存在来决定。

Baubles 不在本 wiki 收录范围(data/relation.md 无对应行),不建分类链接。

静态初始值

public static int energyBuffer = 100;          // :71
public static double energyMultiplier = 1;     // :72
public static List<String> allowedCommands;    // :73  —— 无初始值

allowedCommands 无字段初始值(null),只在 preInit 中赋值。这是本仓库「未调用 setter = 默认值」陷阱的变体:若 preInit 未执行,读取该字段会得到 null 而非空列表。

相关条目