No se copian valores de la configuración predeterminada
Pregunta
He escrito este código:
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.");
}
}
}
con la intención de tomar este archivo config.yml dentro del frasco y que lo envía:
# 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
Pero cuando lo llamo así:
reloadDefConfig(new File(getDataFolder(), "config.yml"), "config.yml");
No se copian valores:
# 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)
Solución
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