跳到正文

ZConfig

作者:ZenXArch

一个支持从其他模组覆盖加载的 Mixin 配置模组

收藏

介绍

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

这个项目为什么存在?

这是一个通用配置模组,略微基于 c2me 的内部配置系统。
这也让我能将 zfastnoise 的体积缩减到几十千字节,用户只需下载一次这个配置模组。

功能

  • 基于 Toml 的配置文件
  • 基于 boolean 和 int 的配置项
  • 允许其他模组使用模组元数据覆盖配置项
  • 将模组标记为与某些配置项不兼容

例如,fabric.mod.json

{
  ...
  "custom": {
    "zfastnoise:overrides" : "mixin.perf.surface"
  }
}

以上内容会禁用 mixin.perf.surface 配置选项

未来计划

  • 添加对 modmenu/forge 配置 API 的支持
  • 添加 neoforge 构建
  • 添加更多语法糖以便轻松生成配置

配置示例

package org.codeberg.zenxarch.zconfig.test;

import org.codeberg.zenxarch.zconfig.entry.BooleanConfigEntry;
import org.codeberg.zenxarch.zconfig.entry.ConfigEntries;
import org.codeberg.zenxarch.zconfig.entry.IntConfigEntry;
import org.codeberg.zenxarch.zconfig.loader.Config;
import org.codeberg.zenxarch.zconfig.loader.ConfigLoader;
import org.codeberg.zenxarch.zconfig.loader.OverrideCollector;
import org.junit.jupiter.api.Test;

public class ExampleConfig extends ConfigEntries {
  public static final ExampleConfig INSTANCE = new ExampleConfig();

  public static final BooleanConfigEntry MAIN =
      INSTANCE.createEntry(
          "main",
          builder -> builder.addComment("Main entry").defaultValue(false).addIncompat("sodium"));

  public static final IntConfigEntry OTHER =
      INSTANCE.createIntEntry(
          "other", builder -> builder.addComment("Other entry").defaultValue(0).constraints(-1, 1));

  public static final Config CONFIG =
      new Config(
          new ConfigLoader("example_mod_id", INSTANCE), new OverrideCollector("example_mod_id"));

  @Test
  public void loadConfig() {
    IO.println(CONFIG.get(MAIN));
    IO.println(CONFIG.get(OTHER));
    IO.println(CONFIG.loadMixinEntries());
  }
}

常见问题

ZConfig 支持哪些 Minecraft 版本?

ZConfig 支持 Minecraft Java 版 1.21–26.3,共 17 个版本,可用的加载器:Fabric / Quilt。下载时注意选择和你游戏版本一致的文件。

ZConfig 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

ZenXArch 的其他作品

查看全部 →