没有从默认配置中复制任何值

时间:2012-03-10 16:57:21

标签: java yaml bukkit

我写了这段代码:

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.");
        }
    }
}

意图将此 config.yml 文件放在JAR中并输出:

# 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

但是当我这样称呼它时:

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

不会复制任何值:

# 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)

1 个答案:

答案 0 :(得分:3)

一种可能性是home:之前有两个空格。 尝试删除它们或添加父节点,因此生成的文件将如下所示:

# 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