RanksConfig

基本信息

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

功能

新建城镇时套用的默认 Rank(权限等级) 集合。 继承 JsonConfig<Rank, Rank.Container>,Gson 需显式注册 Rank 的自定义序列化器:

this.gson = new GsonBuilder()
    .registerTypeAdapter(Rank.class, new Rank.Serializer())
    .setPrettyPrinting().create();

关键行为

  • create() 先调 Rank.initDefaultRanks() 填充 Rank.defaultRanks,再整体写入文件。
  • read() 读到后会先 clear() 再 addAll() 覆盖 Rank.defaultRanks —— 即文件内容在运行时取代内置默认值。

实现要点

  • 文件里的 Rank 通过 Rank.Serializer 序列化,Rank 有自定义的 Serializer 与 Container 两个配套类,不能靠 Gson 默认反射。
  • 加载后会跑 validate(Rank.Container) 检查合法性。
  • 玩家能否自行改动 Rank 由 Config 的 modifiableRanks 控制 (默认 false),该开关决定是否注册 CommandsAssistant.ModifyRanks。

相关条目