-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Petrus Pradella edited this page Jun 27, 2026
·
5 revisions
One config API. Every format. Comments included.
FinalConfig is a Jackson-backed configuration library for the JVM. The canonical state of a config is a Jackson
ObjectNode tree; a pluggable Codec turns text ⇄ tree, a format-agnostic comment
overlay preserves comments, and typed entity binding is a derived view that merges into the tree rather than
replacing it.
-
Group / artifact:
br.com.finalcraft:FinalConfig· Version:1.0.1 -
Root package:
br.com.finalcraft.finalconfig - Pure Java — no Bukkit/Spigot API, no EverNifeCore.
| Need | Page |
|---|---|
| Add the dependency | Installation |
| Read & write config by path | The Dynamic API |
| Seed defaults + document them | Default Values & Comments |
| Pick a format (YAML/JSON/TOML/JSONC) | Codecs & Formats |
| Map config to typed objects | Entity Binding |
Use @Key / @Comment / @Section / @Id / @PostInject
|
Annotations |
| Store a keyed collection | @Id Collections |
| Save / reload / watch a file | Lifecycle, Reload & Watching |
| How it fits together | Architecture Overview |
| Quick reference | API Cheat Sheet |
| Surprises to avoid | FAQ & Gotchas |
Config cfg = Config.open(Paths.get("server.yml"), new YamlCodec());
cfg.setValue("server.host", "localhost");
int port = cfg.getOrSetDefaultValue("server.port", 25565, "the listen port"); // seeds value + comment if absent
cfg.save(); // atomic write; comments + key order preservedSwitch the codec and the same code writes TOML, JSON or JSONC:
Config cfg = Config.open(Paths.get("server.toml"), new TomlCodec());New here? Start with Installation then Quick Start.
EveryConfig · br.com.finalcraft:EveryConfig · One config API, every format, comments included · made by Petrus Pradella
Getting Started
Core Concepts
Typed Binding
Operations
Reference
Contributing