Settings

Settings.java
@name("Settings")
@author("Author")
@description("Settings")

NeonBooleanSetting booleanSetting;
NeonNumberSetting numberSetting;
NeonNumberRangeSetting numberRangeSetting;
NeonColorSetting colorSetting;
NeonEnumSetting<EnumSetting> enumSetting;
NeonStringSetting stringSetting;

@Override
public void initialize() {
    this.booleanSetting = getSettings().registerBoolean("Boolean Setting!", true);
    this.numberSetting = getSettings().registerNumber("Number Setting!", 0, 10, 5.5, 0.5);
    this.numberRangeSetting = getSettings().registerNumberRange("Number Range Setting!", 0, 10, 3.5, 6.5, 0.5);
    this.colorSetting = getSettings().registerColor("Color Setting!", Color.WHITE);
    this.enumSetting = getSettings().registerEnum("Enum Setting!", EnumSetting.MODE_1);
    this.stringSetting = getSettings().registerString("String Setting!", "String Value");

    // settings can be hidden by using a Supplier<Boolean>
    // '() -> value' if the value is true the setting will be visible, otherwise it will be hidden
    // getSettings().registerString("String Setting!", "String Value", () -> value);
        
    // getting the values
    this.booleanSetting.getValue();
    this.numberSetting.getValue().doubleValue();
    this.numberRangeSetting.getValue().a();
    this.numberRangeSetting.getValue().b();
    this.colorSetting.getValue();
    this.enumSetting.getValue();
    this.stringSetting.getValue();
    
    // modifying other module's settings
    INeonModule speed = getNeon().getModuleManager().get("Speed");
    // modify the submode
    speed.updateSetting("Mode", "Watchdog", "Watchdog Mode", "Old Low Hop");
    
    INeonModule killAura = getNeon().getModuleManager().get("Kill Aura");
    // modify number range
    killAura.updateSetting("Range", 3.0, 3.5);
}

enum EnumSetting {
    MODE_1("Mode 1"),
    MODE_2("Mode 2"),
    MODE_3("Mode 3");

    private final String label;

    EnumSetting(String label) {
        this.label = label;
    }

    @Override
    public String toString() {
        return this.label;
    }
}

Last updated