General-purpose utility library for Fabric mods, originally built for TheSmoothRere's mods but open for anyone to use.
@Config annotationBooleanOption, StringOption, IntegerOption, DoubleOption, EnumOption<E>, ListStringOptionIntegerOption and DoubleOption enforce min/max boundsListStringOption backed by a mutable ListString wrapper with add, edit, remove, clearimport io.github.thesmoothrere.relib.config.ListString;
import io.github.thesmoothrere.relib.config.option.*;
@Config(name = "my_mod")
public class MyModConfig implements ConfigApi {
private final BooleanOption enabled = new BooleanOption("enabled", true);
private final IntegerOption volume = new IntegerOption("volume", 50, 0, 100);
private final DoubleOption sensitivity = new DoubleOption("sensitivity", 0.5, 0.0, 1.0);
private final StringOption greeting = new StringOption("greeting", "Hello!");
private final EnumOption<MyEnum> mode = new EnumOption<>("mode", MyEnum.NORMAL);
private final ListStringOption favoriteColors = new ListStringOption("favorite_colors", "red", "blue");
public ConfigOption<Boolean> enabled() {
return enabled;
}
public ConfigOption<Integer> volume() {
return volume;
}
public ConfigOption<Double> sensitivity() {
return sensitivity;
}
public ConfigOption<String> greeting() {
return greeting;
}
public ConfigOption<MyEnum> mode() {
return mode;
}
public ConfigOption<ListString> favoriteColors() {
return favoriteColors;
}
}
fabric.mod.json{
"entrypoints": {
"relib": [
"com.example.MyModConfig"
]
}
}
MyModConfig config = ConfigManager.get(MyModConfig.class);
boolean enabled = config.enabled().getValue();
ConfigManager.load(config);
ConfigManager.save(config);
| Class | Value Type | Bounded |
|---|---|---|
BooleanOption |
Boolean |
No |
StringOption |
String |
No |
IntegerOption |
Integer |
Yes |
DoubleOption |
Double |
Yes |
EnumOption<E> |
E extends Enum<E> |
No |
ListStringOption |
ListString |
No |
Licensed under the GNU Lesser General Public License v2.1. See LICENSE.