我写了这段代码:
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)
答案 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