介绍
YAML Config:Minecraft 配置模组
概述
YAML Config 是一款强大的 Minecraft 配置模组,可让模组开发者使用 YAML 文件格式创建和管理配置设置。它提供了易于使用的图形界面、广泛的数据类型支持,以及可靠的客户端-服务器同步功能。
功能
-
YAML 文件格式:YAML Config 使用以易读、易用著称的 YAML 文件格式。
-
图形界面:设计完善的图形界面让玩家可以轻松浏览和编辑配置设置。
-
广泛的数据类型支持:该模组支持多种数据类型,包括:
- 基本类型:
boolean、int、float、double、String、ResourceLocation、Registry - 集合:
List、Map - 日期和时间:
LocalDateTime
- 基本类型:
-
服务端-客户端同步:在服务器上对配置所做的更改会自动同步到客户端,确保所有玩家的游戏体验保持一致。
-
整合包支持:该模组专为与现有整合包无缝协作而设计,提供灵活且可扩展的配置系统。
-
验证与错误处理:该模组包含可靠的验证和错误处理机制,确保配置符合预期要求。
安装与使用
安装
- 下载模组:从 YAML Config 的官方网站、CurseForge 或 Modrinth 下载最新版本。
- 放置模组文件:将下载的 JAR 文件移至 Minecraft 目录下的“mods”文件夹。
- 启动 Minecraft:启动 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*方法为每个配置项选择合适的数据类型。
// Example of defining a boolean entry:
debug = builder.defineBoolean("debug", false);
// Example of defining an integer entry with range:
intEntry = builder.defineInteger("intEntry", 10, 0, 100); // Min 0, Max 100
// Example of defining a string entry with pattern:
stringEntry = builder.defineString("stringEntry", "test", "test\\d+");
// Example of defining a registry entry:
registryEntry = builder.defineRegistry("registryEntry", Blocks.GRASS_BLOCK, BuiltInRegistries.BLOCK);
// Example of defining a list:
stringListEntry = builder.defineStringList("stringListEntry", List.of("test1", "test2", "test3"), 3, 10); // Min 3, Max 10
// Example of defining a map:
integerMapEntry = builder.defineIntegerMap("integerMapEntry", Map.of("test1", 1, "test2", 2, "test3", 3), 3, 10); // Min 3, Max 10
3. 构建配置:
- 调用
ConfigBuilder上的build()方法来创建配置。 - 将配置存储在静态字段中,以便在模组代码中轻松访问。
public MyModConfig() {
ConfigBuilder builder = new ConfigBuilder("mymod", "mymod-config", ConfigExtension.YAML, ConfigType.CLIENT);
// ... define config entries
config = builder.build();
}
4. 在代码中访问配置值:
- 使用
get()方法获取配置项的当前值。 - 使用
set()方法修改配置项的值。
// Example:
boolean debugEnabled = MyModConfig.debug.get(); // Retrieve the current value of the "debug" setting
if (debugEnabled) {
// Perform debug-related actions
}
MyModConfig.intEntry.set(25); // Set the value of the "intEntry" to 25
配置类型
ConfigType.CLIENT:客户端配置仅适用于安装了该模组的客户端,不会与服务器上的其他玩家共享。ConfigType.SERVER:服务端配置仅适用于专用服务器,不会用于单人世界,也不会同步给服务器上的玩家。ConfigType.COMMON:通用配置由客户端和服务器共用。可以直接编辑配置文件并重启服务器来修改,也可以通过游戏内界面编辑数值并保存更改。
使用自定义数据类型
- 使用
IConfigEntryType接口在 YAML Config 模组中注册自定义数据类型。 - 实现自定义序列化器,以处理自定义数据类型的序列化和反序列化。
整合包配置
- 如果你正在制作整合包,可以使用 YAML Config 为整合包定义配置选项。
- 将整合包的配置文件放在整合包目录下的 “config” 文件夹中。
示例
// Example: Basic client-side configuration
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) // default false.
.withComments("Whether debug mode is enabled for the mod.");
testInt = builder.defineInteger("testInt", 10, 0, 100); // default 10, min 0 and max 100.
config = builder.build();
}
}
常见问题
YAML Config 支持哪些 Minecraft 版本?
YAML Config 支持 Minecraft Java 版 1.21–26.3,共 14 个版本,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。
YAML Config 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
DAQEM 的其他作品
查看全部 →UI Lib
用于 Minecraft 模组开发的用户界面前置库。
Arc Lib
数据驱动的动作、奖励、条件库。
Item Restrictions
基于 Arc Lib 的数据驱动物品限制前置库。
Jobs+ [ARCHIVE]
为 Minecraft 新增 10 种职业,每种都拥有酷炫功能。

评论
登录后评论和评分