FlagsConfig

基本信息

属性 值
类名 mytown.config.json.FlagsConfig
文件 src/main/java/mytown/config/json/FlagsConfig.java
行数 120
配置文件 <config>/MyTown/DefaultFlags.json
启用版本 Minecraft 1.7.10

功能

新建城镇时套用的默认 flag 值覆盖。继承 myessentials.json.api.JsonConfig<FlagsConfig.Wrapper, List<FlagsConfig.Wrapper>> (MyEssentials-Core),用 Gson 以 List<Wrapper> 形式持久化。

关键行为

  • create() 遍历 FlagType.values()(共 15 种,见 FlagType), 为每种生成一个 Wrapper(type.name, type.defaultValue, type.configurable)。
  • 随后回写到静态 FlagType 实例: item.getFlagType().defaultValue = item.defaultState; item.getFlagType().configurable = item.configurable;
  • 因此该文件不只是「存档」,而是会在加载时改写 FlagType 的默认值。

实现要点

⚠️ FlagsConfig 的作用时机是建城时,不是全局开关。它改的是 FlagType.defaultValue 这个静态字段,建城时由城镇复制一份实例。

⚠️ 由于 create() 会把文件内容写回 FlagType.defaultValue,一旦玩家在 JSON 里改了值, 该值就成为之后所有新城镇的默认。

相关条目