1. 配置文件
走到这一步的读者大概已经发现了,很多东西其实都是有自定义的空间的。某个机器使用的常量,某种世界生成的开关,某个客户端特效的精确控制,不胜枚举。所以你大概需要一个配置文件。Forge 正好提供了这样一套工具用来快速搞定这个需求。
1.1. 一个简单示范:MyModConfig.java
最简单的创建配置文件的方法是使用这套基于注解的系统。
@Config(modid = "my_mod_id") // 相当于入口标记一样的东西。`modid` 一定要填你的 mod id。
@Config.LangKey("config.my_mod.general") // 这个用于本地化,稍后会讲
public final class MyModConfig {
// 最简单的一个选项就是这样声明的。
// 反映到真正的配置文件中,会是 `B:think=false`。
public static boolean think = false;
@Config.Comment("Hey I am foo") // 有了这个就会多一个注释。
@Config.LangKey("config.my_mod.general.foo") // 供配置 GUI 界面使用的本地化键,参阅“可视化配置文件编辑界面”一节
@Config.Name("Foo") // 默认配置选项名是字段名,如果需要别的名字就用这个。
@Config.RangeInt(min = 1, max = 10000) // 整数值支持限定范围。
@Config.RequiresWorldRestart // meta 标记,代表需要重进存档才会生效
@Config.RequiresMcRestart // meta 标记,代表需要重启游戏才会生效
public static int foo = 0;
@Config.Comment("Hey I am bar")
@Config.LangKey("config.my_mod.general.bar")
@Config.Name("Bar")
@Config.RangeDouble(min = 1.0, max = 10000.0) // 和 RangeInt 一个意思,不过是给 double 的。
@Config.RequiresWorldRestart
@Config.RequiresMcRestart
public static double bar = 0;
// 数组也是支持的。
public static String[] strArr = new String[] { "test" };
}