Cryonic Config

Cryonic Config

Chill Minimal 配置 API

Cryonic Config

  • 跨版本易移植的配置工具,依赖极少
  • 特别注重易用性和可移植性
  • 取名为 Cryonic 是因为它酷毙了

功能说明

  • 此工具会将 JSON 文件存储在 {minecraft_dir}/config 目录下,文件名为 "mod_id.json"
  • 所有配置文件将在游戏初始化早期通过 "cryonicconfig.json" 中的字典进行读取
  • 配置仅能通过直接编辑 JSON 文件进行修改,暂无图形化配置界面的计划
  • 为了便于移植,同步的变量会直接通过聊天发送给玩家,并进行拦截
  • 使用哈希映射来查找字符串对应的 ConfigStorage 以及字符串对应的对象(变量)

API

Groovy (build.gradle) 添加依赖

添加 Maven 仓库:

repositories {
    maven { url "https://api.modrinth.com/maven" }
}

现代版/Architectury:
若仅用于 fabric 或 neoforge,请将 ${project.name} 替换为 fabric、forge、neoforge

dependencies {
    modImplementation "maven.modrinth:cryonicconfig:fabric-${project.name}:1.0.0+mc${rootProject.minecraft_version}"
}

b1.7.3:

dependencies {
    modImplementation "maven.modrinth:cryonicconfig:babric:1.0.0+mcb1.7.3"
}

简单用法:

// 你可以存储或随时使用,此方法可在任何位置调用
ConfigStorage config = CryonicConfig.getConfig("mod_id");

// 你可以存储 int、double、boolean 和 string 类型
// 通过获取它们,你也同时设置了它们的默认值
// getter 格式(变量名,默认值)
// 你不能重复使用变量名!它们会被覆盖。
config.getInt("varName", 3);
config.getDouble("name", 3.3);
config.getBoolean("var", true);
config.getString("str", "Geronimo!")

// 该变量将在客户端和服务器端本地存在
// 如果你希望连接的服务器玩家使用服务器配置
// 你必须调用此方法,使客户端使用服务器的值 
config.sync("varName", playerEntity);

// 你也可以使用以下格式:
CryonicConfig.getConfig("mod_id").getInt("varName", 3);

// 你可以手动设置变量,而不是让 getter 生成它们
// 这对于覆盖旧值也很有用
config.setInt("varName", 3);
config.setDouble("name", 3.3);
config.setBoolean("var", true);
config.setString("str", "Geronimo!");

标记依赖

在 fabric.mod.json 中:

{
  "depends": {
    "cryonicconfig": "*"
  }
}

在 mods.toml/neoforge.mods.toml 中:

[[dependencies.cryonicconfig]]
modId = "cryonicconfig"
type = "required"
versionRange = "[0,)"