Radon
A configuration library which is super easy to use
Radon
Radon
This mod is a very easily usable configuration library.
Here's how to use it: - Add the Modrinth Maven repository to your project: ```groovy repositories { maven { url = "https://api.modrinth.com/maven" } } ``` - Add Radon to the dependencies of your mod: ```groovy dependencies { modImplementation "maven.modrinth:radon-lib:FIND_THE_LATEST_VERSION_ON_MODRINTH" } ``` - Create a class which extends ConfigScreen: ```java package your.mod;
import me.kitty.radon.api.*;
public class MyConfig extends ConfigScreen { @Override public String getScreenTitle() { return "your screen's title"; }
@Override protected void radon() { // you need tabs to create rows Tab tab = tab("tab's name"); Tab otherTab = tab("second tab"); // you can also create sections Section section = section(otherTab, "name"); // this is where we create our options // if you want a boolean or an enum // then you want to use ButtonRow enum myEnum { RADON, CONFIG } ButtonRow buttonRow = buttonRow( tab, key("button_row"), // key of the row: Radon will save the content of the row to the disk with this key "Label of the row", List.of("Tooltip", "shows when you", "hover the row", "with your mouse"), myEnum.RADON // either an option of your enum or true or false ); // you sometimes want to run code, if the button's value is changed // it's very simple to do that: buttonRow.subscribe(newValue -> { // newValue is an object // but you can cast it into (boolean) newValue // or (myEnum) newValue // this will probably be made easier }); // now, comes the slider row // use this if you want a number SliderRow sliderRow = sliderRow( section, // here you can use a section instead of the tab key("slider_key"), "Label of the row", List.of("Tooltip again"), 80, // initial value 50, // minimum value 100 // maximum value ); // here subscribe gives you a long as newValue // you can also run code, if Radon loaded the saved value of the option sliderRow.onInit(() -> { long value = sliderRow.getValue(); }); // and if you need a string value, use InputRow InputRow inputRow = inputRow( tab, key("input"), "Label of the row", List.of("Tooltip"), "Placeholder", 16 // limit how many characters it can be ); // subscribe gives newValue as String here } } ``` - Add your class to ``fabric.mod.json`` as an entrypoint: ```json { "entrypoints": { "radon": ["your.mod.MyConfig"] } } ``` It's that easy!