概述
让你能够高效且优雅地编写你的配置文件的轻量级配置库。
与我共舞
对于普通用户来说,Prism Config 包含了一个 fabric.mod.json,因此它可以作为一个 Fabric 模组被加载;然而,此模组本质上仅是一个普通的 Java 配置库,因此它理论上可以被任何加载器在任何游戏版本上加载。
对于开发者来说,要将 Prism Config 加入你的项目,需要在你的 build.gradle(.kts) 中加入以下内容:
Groovy DSL:
repositories {
// ...
maven {
name = "Nova Committee - Release"
url = "https://maven.nova-committee.cn/releases/"
}
maven {
name = "Nova Committee - Snapshot"
url = "https://maven.nova-committee.cn/snapshots/"
}
}
dependencies {
// ...
implementation "io.github.prismwork:prismconfig:0.2.0:all"
// 如果你已经在你的项目中包含了 Prism Config 所需要的库的话,也可以选用较小的 Jar。 (Gson, Jankson...)
// implementation "io.github.prismwork:prismconfig:0.2.0"
}
Kotlin DSL:
repositories {
// ...
maven {
name = "Nova Committee - Release"
url = uri("https://maven.nova-committee.cn/releases/")
}
maven {
name = "Nova Committee - Snapshot"
url = uri("https://maven.nova-committee.cn/snapshots/")
}
}
dependencies {
// ...
implementation("io.github.prismwork:prismconfig:0.2.0:all")
// 如果你已经在你的项目中包含了 Prism Config 所需要的库的话,也可以选用较小的 Jar。 (Gson, Jankson...)
// implementation("io.github.prismwork:prismconfig:0.2.0")
}
Prism Config 默认提供了适用于 JSON (Gson),JSON5 (Jankson) 和 TOML 0.4.0 (toml4j) 的序列化器和反序列化器。
可以通过以下代码来实现把字符串转换成配置文件对象:
String content;
MyConfig config = PrismConfig.getInstance().serialize(
MyConfig.class,
content,
DefaultSerializers.getInstance().json5(MyConfig.class) // We assume that your config is written in JSON5
);
可以通过以下代码来实现把配置文件对象转换成字符串:
MyConfig content;
String config = PrismConfig.getInstance().deserialize(
MyConfig.class,
content,
DefaultDeserializers.getInstance().json5(MyConfig.class) // We assume that your config is written in JSON5
);
你也可以把它直接写入文件:
MyConfig content;
File configFile;
PrismConfig.getInstance().deserializeAndWrite(
MyConfig.class,
content,
DefaultDeserializers.getInstance().json5(MyConfig.class), // We assume that your config is written in JSON5
configFile
);
要编写你自己的序列化/反序列化器,你可以使用以下代码(我们以序列化为例):
String content;
PrismConfig.getInstance().serialize(
MyConfig.class,
content,
(string) -> {
// Do your own parsing here
}
);
使用的库
falkreon 制作的 Jankson,以 MIT 协议开源。
Google 制作的 Gson,以 Apache-2.0 协议开源。
Moandji Ezana 制作的 toml4j,以 MIT 协议开源。