Config Manager

Base class for YAML configs with auto-update via ConfigUpdater.

Usage

import io.github.chi2l3s.nextlib.api.config.BaseConfig;
import io.github.chi2l3s.nextlib.api.config.ConfigUtil;
import org.bukkit.World;
import org.bukkit.plugin.java.JavaPlugin;

public class MyConfig extends BaseConfig {
  public String prefix;
  public int cooldownSeconds;
  public World targetWorld;

  public MyConfig(JavaPlugin plugin) { super(plugin, "config.yml"); }

  @Override
  protected void loadValues() {
    prefix = config.getString("prefix", "&7[My]&r ");
    cooldownSeconds = ConfigUtil.parseTime(config, "cooldown", 60); // e.g. "2m", "10s"
    targetWorld = ConfigUtil.getWorld(config, "world", "world");
  }
}

// Usage
MyConfig cfg = new MyConfig(this);
cfg.reloadConfig();
getLogger().info("Prefix: " + cfg.prefix);

Notes

  • reloadConfig() creates the file from resources if missing
  • ConfigUpdater keeps comments and adds new keys