
YAML Config
基于YAML格式的带图形界面的配置库。
YAML Config:一个 Minecraft 配置模组
概述
YAML Config 是一个功能强大的 Minecraft 配置模组,允许模组开发者使用 YAML 文件格式创建和管理配置设置。它提供了用户友好的 GUI、广泛的数据类型支持,以及用于客户端-服务器同步的强大网络功能。
特性
YAML 文件格式: YAML Config 采用以可读性和易用性著称的 YAML 文件格式。
GUI 界面: 精心设计的 GUI 让玩家能够轻松浏览和编辑他们的配置设置。
广泛的数据类型支持: 该模组支持多种数据类型,包括:
- 原始类型:
boolean、int、float、double、String、ResourceLocation、Registry - 集合:
List、Map - 日期和时间:
LocalDateTime
- 原始类型:
服务器-客户端同步: 服务器上对配置所做的更改会自动同步到客户端,确保游戏体验的一致性。
整合包支持: 该模组旨在与现有整合包无缝协作,提供一个灵活且可扩展的配置系统。
验证与错误处理: 该模组包含强大的验证和错误处理功能,确保配置满足预期要求。
安装与使用
安装
- 下载模组: 从模组的官方网站、CurseForge 或 Modrinth 下载最新版的 YAML Config。
- 放置模组文件: 将下载的 JAR 文件移动到你的 Minecraft 目录下的“mods”文件夹中。
- 启动 Minecraft: 开始游戏并加入一个世界。
使用
打开配置界面: 在键盘上按“F12”打开配置界面。
导航至配置: 配置界面会显示可用配置的列表。选择你想要修改配置的模组。
编辑配置条目: 配置界面显示可用的设置。每个条目包括:
- 标题: 设置的名称。
- 输入字段: 用于编辑值的字段。
- 重置按钮: 用于将值重置为默认值的按钮。
保存更改: 点击“保存更改”按钮以保存你的修改。该模组会自动将更改保存到配置文件中,并在适用的情况下与服务器上的其他玩家同步。
开发
创建配置
1. 定义一个配置类:
- 在你的模组代码库中创建一个新的 Java 类,代表你的模组的配置。
public class MyModConfig {
public static IConfig config;
public static IConfigEntry<Boolean> debug;
public static void init() {
ConfigBuilder builder = new ConfigBuilder(MyMod.MOD_ID, "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);
}
}
2. 定义配置条目:
- 使用
ConfigBuilder类为你的配置定义设置。 - 使用
define*方法为每个条目选择合适的数据类型。
// 定义布尔条目的示例:
debug = builder.defineBoolean("debug", false);
// 定义带范围的整数条目示例:
intEntry = builder.defineInteger("intEntry", 10, 0, 100); // 最小 0,最大 100
// 定义带模式的字符串条目示例:
stringEntry = builder.defineString("stringEntry", "test", "test\\d+");
// 定义注册表条目的示例:
registryEntry = builder.defineRegistry("registryEntry", Blocks.GRASS_BLOCK, BuiltInRegistries.BLOCK);
// 定义列表的示例:
stringListEntry = builder.defineStringList("stringListEntry", List.of("test1", "test2", "test3"), 3, 10); // 最小 3,最大 10
// 定义映射的示例:
integerMapEntry = builder.defineIntegerMap("integerMapEntry", Map.of("test1", 1, "test2", 2, "test3", 3), 3, 10); // 最小 3,最大 10
3. 构建配置:
- 在
ConfigBuilder上调用build()方法来创建你的配置。 - 将配置存储在一个静态字段中,以便在你的模组代码中轻松访问。
public MyModConfig() {
ConfigBuilder builder = new ConfigBuilder("mymod", "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);
// ... 定义配置条目
config = builder.build();
}
4. 在你的代码中访问配置值:
- 使用
get()方法检索配置条目的当前值。 - 使用
set()方法修改配置条目的值。
// 示例:
boolean debugEnabled = MyModConfig.debug.get(); // 检索“debug”设置的当前值
if (debugEnabled) {
// 执行与调试相关的操作
}
MyModConfig.intEntry.set(25); // 将“intEntry”的值设置为 25
配置类型
ConfigType.CLIENT: 客户端配置特定于已安装该模组的客户端。它们不会与服务器上的其他玩家共享。ConfigType.SERVER: 服务器端配置特定于专用服务器。它们不会在单人世界中使用,也不会同步给服务器上的玩家。ConfigType.COMMON: 通用配置在客户端和服务器之间共享。它们可以通过直接编辑配置文件并重启服务器,或使用游戏内 GUI 编辑值并保存更改来在服务器上进行修改。
使用自定义数据类型
- 使用
IConfigEntryType接口向 YAML Config 模组注册自定义数据类型。 - 实现一个自定义序列化器,用于处理你的自定义数据类型的序列化和反序列化。
整合包配置
- 如果你正在创建整合包,你可以使用 YAML Config 来定义整合包的配置设置。
- 将整合包的配置文件放在整合包目录下的“config”文件夹中。
示例
// 示例:基本的客户端配置
public class MyModConfig {
public static IConfig config;
public static IConfigEntry<Boolean> debug;
public static IConfigEntry<Integer> testInt;
public static void init() {
ConfigBuilder builder = new ConfigBuilder("mymod", "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);
debug = builder.defineBoolean("debug", false) // 默认为 false。
.withComments("模组是否启用调试模式。");
testInt = builder.defineInteger("testInt", 10, 0, 100); // 默认为 10,最小 0,最大 100。
config = builder.build();
}
}
正在加载版本记录…


正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。