Question

I have written this code:

public void reloadDefConfig(File filepath, String fileInJar) {
    File configFile = filepath;
    FileConfiguration daConfig = YamlConfiguration.loadConfiguration(configFile);

    if (!configFile.exists()){
        log.info(logName + "Creating default \"" + fileInJar + "\".");

        InputStream defConfigStream = getResource(fileInJar);

        if (defConfigStream != null){
            YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
            daConfig.setDefaults(defConfig);

            try {
                daConfig.save(configFile);
                log.info(logName + "Default config file \"" + fileInJar + "\" wrote.");
            } catch (IOException ex){
                log.severe(logName + "Could not write config file: " + fileInJar);
            }
        } else {
            log.warning(logName + "Could not find default \"" + fileInJar + "\" file.");
        }
    }
}

With the intent of taking this config.yml file inside the JAR and outputting it:

# Home section; this next part of code decides how large the radius to check for monsters
#  for the /home command if not set it will be auto default to 10x10x10 if you want to 
#  disable the radius use -1 on the value (note one value with -1 will disable all)
  home:
    x: 10
    y: 10
    x: 10

But when I call it like this:

reloadDefConfig(new File(getDataFolder(), "config.yml"), "config.yml");

No values are copied:

# Home section; this next part of code decides how large the radius to check for monsters
#  for the /home command if not set it will be auto default to 10x10x10 if you want to 
#  disable the radius use -1 on the value (note one value with -1 will disable all)
Was it helpful?

Solution

One possibility is that you have two spaces before home:. Try getting rid of them or adding a parent node, so the resulting file would look like this:

# Home section; this next part of code decides how large the radius to check for monsters
#  for the /home command if not set it will be auto default to 10x10x10 if you want to 
#  disable the radius use -1 on the value (note one value with -1 will disable all)
Main:
  home:
    x: 10
    y: 10
    x: 10
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top