Unnamed Common Library (UCL)
A very simple, easy to use configuration library that fits right in your mod!
介绍
English
❔ Tell me more about it
Unnamed Common Library (UCL) is my attempt at making a simple, useful, (yet to be) powerful configuration library. Its goal is to be general purpose so that no matter the mod you build or your preferences, you can always use it. This library is obviously not meant to be used on its own,if you do so it will at most serve as an example and a test for its capabilities.
🤩 Why you should like it
- Very easy to implement and use
- Optional configuration screen integrations
- JSON, TOML, and YAML support
🧑💻 For developers
Installation
Add the repository to your build.gradle(.kts):
repositories {
maven {
url = "https://maven.pkg.github.com/aurorarissime/unnamed-common-library"
}
}
And in your buildscript, add the dependency (modImplementation for Fabric, implementation for NeoForge):
dependencies {
(mod)Implementation("from.discorde:ucl:${ucl_version}+${minecraft_version}-fabric")
}
Usage
1. Create your configuration model
MyModConfig.java
import from.discorde.ucl.common.config.annotations.*;
@Configuration(
name = "mymod"
)
public class MyModConfig {
@Comment("Enable the awesome feature")
public boolean awesomeFeature = true;@Comment("Maximum power level (0-100)")
public int maxPower = 50;@Comment("Welcome message displayed to players")
public String welcomeMessage = "Hello!";
}
2. Load the configuration in your mod initialiser
MyMod.java
public class MyMod implements ModInitializer {
// The wrapper class is auto-generated at compile time
public static final MyModConfigWrapper CONFIG = MyModConfigWrapper.createAndLoad();@Override
public void onInitialize() {
if (CONFIG.awesomeFeature) {
System.out.println("Awesome feature is enabled!");
}
}
}
References
Annotations
@Configuration
Add this annotation right above your config class
| Parameter | Type | Default | Description |
|————|————————-|—————-|—————————–|
| name | String | required | Config file or folder name |
| location | ConfigurationLocation | SUBDIRECTORY | Where to save the config |
| format | ConfigurationFormat | JSON5 | File format to use |
| screen | boolean | true | Generate YACL config screen |
@Comment
Add this annotation above any field to include a comment in the config file
@Comment("This comment will appear above the field in the config file")
public boolean myOption = true;
Enums
ConfigurationLocation
| Value | Description |
|—————-|——————————————————|
| ROOT | Save directly in the config folder as {name}.{ext} |
| SUBDIRECTORY | Save in a subfolder as {name}/configuration.{ext} |
ConfigurationFormat
| Value | Extension | Description |
|———|———–|——————————————————–|
| JSON5 | .json5 | JSON with comments, trailing commas, and unquoted keys |
| TOML | .toml | Tom’s Obvious Minimal Language |
| YAML | .yaml | YAML Ain’t Markup Language |
Configuration screens integration
If screen = true (default) in your @Configuration annotation and YetAnotherConfigLib (YACL) is installed, a configuration screen will be auto-generated and accessible through Mod Menu.
To disable the config screen, just set the screen parameter to false in the @Configuration annotation.
Enjoy 🙂
常见问题
Unnamed Common Library (UCL) 支持哪些 Minecraft 版本?
Unnamed Common Library (UCL) 支持 Minecraft Java 版 1.21.1–1.21.11,共 5 个版本,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。
Unnamed Common Library (UCL) 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端 / 服务端。
Discorde 的其他作品
查看全部 →PvP Crosshair
PvP 必备的唯一准星,支持所有版本!
Fresh Animations out of the box
A simple fabric modpack including the famous "Fresh Animations" resource pack to play with it right out of the box!
Ores outlined (Bare Bones)
A Bare Bones addon to see more easily every ore in the game, as simple as that!
PvP Crosshair Renewed
The one and only crosshair to PvP with, available on all versions!
评论
登录后评论和评分