103 lines
2.8 KiB
Java
103 lines
2.8 KiB
Java
package cn.citycraft.SimpleEssential.config;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
public class ConfigLoader extends FileConfig {
|
|
protected static FileConfig config;
|
|
protected static boolean tip = true;
|
|
protected static Plugin plugin;
|
|
|
|
public ConfigLoader(Plugin p, File file) {
|
|
ConfigLoader.plugin = p;
|
|
config = loadConfig(p, file, null, true);
|
|
}
|
|
|
|
public ConfigLoader(Plugin p, File file, boolean res) {
|
|
ConfigLoader.plugin = p;
|
|
config = loadConfig(p, file, null, res);
|
|
}
|
|
|
|
public ConfigLoader(Plugin p, File file, String ver) {
|
|
ConfigLoader.plugin = p;
|
|
config = loadConfig(p, file, ver, true);
|
|
}
|
|
|
|
public ConfigLoader(Plugin p, File file, String ver, boolean res) {
|
|
ConfigLoader.plugin = p;
|
|
config = loadConfig(p, file, ver, res);
|
|
}
|
|
|
|
public ConfigLoader(Plugin p, String filename) {
|
|
ConfigLoader.plugin = p;
|
|
config = loadConfig(p, new File(p.getDataFolder(), filename), null,
|
|
true);
|
|
}
|
|
|
|
public ConfigLoader(Plugin p, String filename, boolean res) {
|
|
ConfigLoader.plugin = p;
|
|
config = loadConfig(p, new File(p.getDataFolder(), filename), null, res);
|
|
}
|
|
|
|
public ConfigLoader(Plugin p, String filename, String ver) {
|
|
ConfigLoader.plugin = p;
|
|
config = loadConfig(p, new File(p.getDataFolder(), filename), ver, true);
|
|
}
|
|
|
|
public ConfigLoader(Plugin p, String filename, String ver, boolean res) {
|
|
ConfigLoader.plugin = p;
|
|
config = loadConfig(p, new File(p.getDataFolder(), filename), ver, true);
|
|
}
|
|
|
|
public static FileConfig getInstance() {
|
|
return config;
|
|
}
|
|
|
|
public FileConfig loadConfig(Plugin p, File file, String ver, boolean res) {
|
|
tip = res ;
|
|
if (!file.getParentFile().exists()) {
|
|
file.getParentFile().mkdirs();
|
|
p.getLogger().info("创建新的文件夹" + file.getParentFile().getAbsolutePath() + "...");
|
|
}
|
|
if (!file.exists()) {
|
|
fileCreate(p, file, res);
|
|
} else {
|
|
if (ver != null) {
|
|
FileConfig configcheck = init(file);
|
|
String version = configcheck.getString("version");
|
|
if (version == null || !version.equals(ver)) {
|
|
p.saveResource(file.getName(), true);
|
|
p.getLogger().warning(
|
|
"配置文件: " + file.getName() + " 版本过低 正在升级...");
|
|
}
|
|
}
|
|
}
|
|
if (tip)
|
|
p.getLogger().info(
|
|
"载入配置文件: " + file.getName()
|
|
+ (ver != null ? " 版本: " + ver : ""));
|
|
return init(file);
|
|
}
|
|
|
|
private void fileCreate(Plugin p, File file, boolean res) {
|
|
if (res) {
|
|
p.saveResource(file.getName(), false);
|
|
} else {
|
|
try {
|
|
p.getLogger().info("创建新的配置文件" + file.getAbsolutePath() + "...");
|
|
file.createNewFile();
|
|
} catch (IOException e) {
|
|
p.getLogger().info("配置文件" + file.getName() + "创建失败...");
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void saveError(File file) {
|
|
plugin.getLogger().info("配置文件" + file.getName() + "保存错误...");
|
|
}
|
|
|
|
}
|