跳到正文

YAML Config

作者:DAQEM

基于YAML格式的带GUI配置前置库。

收藏

介绍

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

Ko-fi Promotion Banner

YAML Config:Minecraft 配置模组

概述

YAML Config 是一款强大的 Minecraft 配置模组,可让模组开发者使用 YAML 文件格式创建和管理配置设置。它提供了易于使用的图形界面、广泛的数据类型支持,以及可靠的客户端-服务器同步功能。

功能

  • YAML 文件格式:YAML Config 使用以易读、易用著称的 YAML 文件格式。

  • 图形界面:设计完善的图形界面让玩家可以轻松浏览和编辑配置设置。

  • 广泛的数据类型支持:该模组支持多种数据类型,包括:

    • 基本类型: boolean、int、float、double、String、ResourceLocation、Registry
    • 集合: List、Map
    • 日期和时间: LocalDateTime
  • 服务端-客户端同步:在服务器上对配置所做的更改会自动同步到客户端,确保所有玩家的游戏体验保持一致。

  • 整合包支持:该模组专为与现有整合包无缝协作而设计,提供灵活且可扩展的配置系统。

  • 验证与错误处理:该模组包含可靠的验证和错误处理机制,确保配置符合预期要求。

安装与使用

安装

  1. 下载模组:从 YAML Config 的官方网站、CurseForge 或 Modrinth 下载最新版本。
  2. 放置模组文件:将下载的 JAR 文件移至 Minecraft 目录下的“mods”文件夹。
  3. 启动 Minecraft:启动 Minecraft 并进入一张地图。

使用方法

  1. 打开配置界面:按下键盘上的“F12”打开配置界面。

  2. 找到配置:配置界面会显示可用配置列表。选择你想修改配置的模组。

  3. 编辑配置项:配置界面会显示可用设置。每个配置项包括:

    • 标题:设置的名称。
    • 输入框:用于编辑数值的输入框。
    • 重置按钮:用于将数值恢复为默认值的按钮。
  4. 保存更改:点击“保存更改”按钮以保存修改。该模组会自动将更改保存到配置文件,并与服务器上的其他玩家同步(如适用)。

开发

创建配置

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 的其他作品

查看全部 →