@Config
@Config 注解可以代替 Configuration.
目录
- 基础
- @Config 用法
- @Comment 用法
- @Name 用法
- @RangeInt 用法
- @RangeDouble 用法
- @LangKey 用法
- @RequiresMcRestart 用法
- @RequiresWorldRestart 用法
- 子类别
- @Ignore
基础
用@Config注释的类将把任何字段变成配置选项。 可以使用@Config类中提供的过多注释来注释所述字段以添加信息。
提示
枚举配置值生成的注释与枚举值一样长。
示例请见Forge's Test
@Config 用法
这个注解表示一个类里面有配置选项。
有4个参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| modid | String |
N/A | 使用该配置的modid |
| name | String |
"" |
用户友好的配置文件名,默认为modid |
| type | Type |
Type.INSTANCE |
配置的类型,现在只有一个值Type.INSTANCE。该参数为了对Forge控制文件向上兼容。 |
| category | String |
"general" |
根元素类别。 如果这是一个空字符串,则禁用根类别。 |
重要
如果你禁用根类型,你要创建子类别,否则会报错。
@Comment 用法
@Comment 用于注解字段,用于在配置文件中生成注释
它有一个参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| value | String[]/String |
N/A | 可以通过String[]传值,并且每一个元素会生成新的一行。 |
示例
@Comment({
"你可以这样增加注释",
"数组可以创建多行注释"
})
public static boolean doTheThing = true;
会生成如下配置:
# 你可以这样增加注释
# 数组可以创建多行注释
B:doTheThing=true
@Name 用法
@Name注解用于在配置文件中生成用户友好的名称。
它有1个参数:
| 参数 | 类型 | 默认值 |
|---|---|---|
| value | String |
null |
示例
@Name("FE/T for the thing")
public static int thingFE = 50;
会生成如下配置:
I:"FE/T for the thing"=50
@RangeInt 用法
你可以用@RangeInt限制配置中int 或Integer的取值范围。
它有2个参数:
| 参数 | 类型 | 默认值 |
|---|---|---|
| min | int |
Integer.MIN_VALUE |
| max | int |
Integer.MAX_VALUE |
示例
@RangeInt(min = 0)
public static int thingFECapped = 50;
它会生成如下配置:
# Min: 0
# Max: 2147483647
I:thingFECapped=50
@RangeDouble 用法
你可以用@RangeDouble限制配置中double 或Double的取值范围。
它有2个参数:
| 参数 | 类型 | 默认值 |
|---|---|---|
| min | double |
Double.MIN_VALUE |
| max | double |
Double.MAX_VALUE |
示例
@RangeDouble(min = 0, max = Math.PI)
public static double chanceToDrop = 2;
它会生成如下配置:
# Min: 0.0
# Max: 3.141592653589793
D:chanceToDrop=2.0
提示
现在(1.12.2中)没有@RangedFloat , @RangedLong或其它类型的限制值。
@LangKey 用法
如果你要在mod配置菜单中添加翻译,那么给字段加上@LangKey。
它有1个参数:
| 参数 | 类型 | 默认值 |
|---|---|---|
| value | String |
null |
@RequiresMcRestart 用法
@RequiresMcRestart注解用于必须要重启才能生效的字段。
示例
@RequiresMcRestart
public static boolean overlayEnabled = false;
这会导致在配置菜单里更改该值之后,游戏必须重启。
@RequiresWorldRestart 用法
加上该注解,如果在mod配置菜单中更改该值,世界会强制重启。
示例
@RequiresWorldRestart
public static boolean someOtherworldlyThing = false;
如果在mod配置菜单中更改该值,世界会强制重启。
子类别
子类别是一种把一组相关的配置放在一起的方式,可以更好的组织你的配置文件。要创建一个子类别,要把一个对象作为静态字段加入到主类别类中。该对象的成员变量会变成子类型的配置。
一个设置子类型的示例:
@Config(modid = "modid")
public class Configs {
public static SubCategory subcat = new SubCategory();
private static class SubCategory {
public boolean someBool;
public int relatedInt;
}
}
在配置文件中,会是这样:
subcat {
B:someBool=false
I:relatedInt=0
}
@Ignore 用法
加上在配置类的字段中加上@Ignore注解之后, ConfigManager 在解析你的配置文件时会跳过该字段。
提示
只在 forge 版本 >= 1.12.2-14.23.1.2602 有效, 因为这个功能在这次更新中加入