跳到正文

SuperMartijn642’s Config Lib

Config Lib 让处理配置文件稍微轻松一些。

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

SuperMartijn642's Config Lib
SuperMartijn642’s Config Lib 允许你一次性指定配置,然后它会自行处理世界加载之间的值重载、与客户端同步值,以及为仅客户端或仅服务端生成值。


创建配置:

配置通过 ModConfigBuilder 创建。
只需使用 #ModConfigBuilder() 创建一个新实例即可。

   ModConfigBuilder builder = new ModConfigBuilder();

可以使用 ModConfigBuilder#define 向配置中添加一个值,它接收一个名称和一个默认值。
对于整数和双精度浮点数值,还需要提供最小值和最大值。
ModConfigBuilder#define 返回一个 Supplier,应将其保存以便从配置中获取该值。

   Supplier<Boolean> booleanValue = builder.define( "booleanValue", true );

   Supplier<Integer> integerValue = builder.define( "integerValue", 5, 0, 10 );

   Supplier<Double> doubleValue = builder.define( "doubleValue", 0.5, 0, 1);

   Supplier<ExampleEnum> enumValue = builder.define( "enumValue", ExampleEnum.VALUE_1 );

可以在定义值之前调用 ModConfigBuilder#comment(String) 为值添加注释。

   Supplier<Boolean> valueWithComment = builder.comment( "this is a comment for 'valueWithComment'" ).define( "valueWithComment ", true );

默认情况下,值会在世界加载时重载。
可以在定义值之前调用 ModConfigBuilder#gameRestart(),将其改为仅在 Minecraft 启动时重载。

   Supplier<Boolean> notReloadedValue = builder.comment( "this is value will not be reloaded" ).define( "notReloadedValue", true );

COMMON 或 SERVER 配置中的值默认会与客户端同步,若要阻止同步,请使用 ModConfigBuilder#dontSync()。

   Supplier<Boolean> notSynchronizedValue = builder.comment( "this is value will not be synchronized" ).define( "notSynchronizedValue", true );

值也可以放入分类中。
ModConfigBuilder#push(String) 压入一个分类,ModConfigBuilder#pop() 弹出一个分类。

   builder.push( "special" );
   
   Supplier<Boolean> specialValue = builder.comment( "this value is in the 'special' category" ).define( "specialValue", true );
   
   builder.pop();

可以使用 ModConfigBuilder#categoryComment(String) 为当前活动分类添加注释。

   builder.push( "client" ).categoryComment( "this, is a comment for the 'client' category" );

定义完所有值后,必须调用 ModConfigBuilder#build() 来完成配置。

   builder.build();

现在你配置中的值将自动重载和同步,并且可以使用保存的 Supplier 实例获取这些值。
这适用于所有可用版本,包括 Minecraft 1.12、1.14、1.15、1.16、1.17、1.18 和 1.19。


示例模组:

有关如何使用 Config Lib 的具体示例,请查看示例模组。


常见问题

我可以在我的整合包中使用你的模组吗?
可以,欢迎在我的整合包中使用我的模组


Discord

有关未来内容、即将推出的模组和讨论,欢迎加入 SuperMartijn642 的 Discord 服务器!

评论

登录后评论和评分

SuperMartijn642 的其他作品

查看全部 →