介绍
Night Auto Config
Serialize everything! Night Auto Config is a Night Config integration for Auto Config (now embedded in Cloth Config).
Implementation
Night Auto Config introduces a NightConfigSerializer to satisfy Auto Config‘s requirement of a serializer’s implementation. You can choose from all the available config formats of Night Config, and use the serializer just as other common serializers, even along with a PartitioningSerializer.
Add to Your Project
It is recommended to use JitPack to implement Night Auto Config into your project.
Groovy
build.gradle
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
modApi "com.github.KessokuTeaTime:Night-Auto-Config:${project.nightautoconfig_version}"
// You'll need to implement Cloth Config API here.
}
gradle.properties
nightautoconfig_version={latest}
Kotlin DSL
build.gradle.kts
repositories {
maven { url = uri("https://jitpack.io") }
}
dependencies {
modApi("com.github.KessokuTeaTime:Night-Auto-Config:${project.nightautoconfig_version}")
// You'll need to implement Cloth Config API here.
}
gradle.properties
nightautoconfig_version={latest}
You should replace
{latest}with the latesttag nameof Night Auto Config.
Reference as Dependency
Don’t forget to reference Night Auto Config as dependency in your mod’s metadata.
fabric.mod.json / quilt.mod.json
{
"depends": {
"nightautoconfig": "*"
}
}
Usage
The serializer implementation is at band.kessokuteatime.nightautoconfig.config.NightConfigSerializer.
Here’s a brief example:
MyConfig.java
// Use annotations provided by Night Auto Config to define serializer providers and deserializer providers at runtime!
@SerializerProvider(MyClassSerializerProvider.class)
@Config(name = "my_config")
public class MyConfig implements ConfigData {
// Something...
private transient final Supplier<String> someStringProvider = () -> "default";
// All Night Config annotations are available
@SerdeDefault(provider = "someStringProvider")
public String someString = someStringProvider.get();
// Night Auto Config provides some interfaces for convenience implementations
// For example, `UnifiedSerializerProvider<T, R>` satisfies both `ValueSerializer<T, R>` and `ValueSerializerProvider<T, R>`
public static class MyClassSerializerProvider implements UnifiedSerializerProvider<MyClass, String> {
// ...
}
// A custom serializer provider for `MyClass` is already specified at type definition
public MyClass someInstance = new MyClass();
}
MyMod.java
public class MyMod implements ModInitializer {
@Override
public void onInitialize() {
// Don't remember to register into Auto Config at initialize
AutoConfig.register(NightExampleConfig.class, ConfigType.DEFAULT_COMMENTED::fileWatcherSerializer);
}
}
For runtime examples, checkout this package.
Please annotate your fields with
com.electronwill.nightconfig.core.serde.annotations.SerdeDefaultfor basic compatibilities! Otherwise, serialization exceptions may happen casually.
常见问题
Night Auto Config 支持哪些 Minecraft 版本?
Night Auto Config 支持 Minecraft Java 版 1.20–1.21.4,共 12 个版本,可用的加载器:Fabric / NeoForge / Quilt。下载时注意选择和你游戏版本一致的文件。
Night Auto Config 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge / Quilt,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端 / 服务端。
KrLite 的其他作品
查看全部 →Bounced
让你的《Minecraft》嗨起来!
CreatePlus
Compatibility enchantments for Create Fabric.
Edgeless Chat Screen
Why not having an edgeless chat screen?
Flash
Flashes as you take a screenshot.
评论
登录后评论和评分