package me.avery246813579.hotpotato.files;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import me.avery246813579.hotpotato.HotPotato;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
public abstract class GameFile {
private FileConfiguration configFile = null;
private String fileName = "Default";
private File file = null;
public GameFile(String fileName) {
this.fileName = fileName + ".yml";
getFile().options().copyDefaults(true);
saveFile();
}
public void forceReload(){
if(configFile == null){
reloadFile();
}
InputStream defConfigSteam = HotPotato.getPlugin().getResource(fileName);
if (defConfigSteam != null) {
@SuppressWarnings("deprecation")
YamlConfiguration cf = YamlConfiguration.loadConfiguration(defConfigSteam);
for(String string : cf.getConfigurationSection("").getKeys(false)){
Bukkit.getLogger().info("Contains: " + string);
if(!configFile.contains(string)){
Bukkit.getLogger().info("NO Contains: " + string);
configFile.set(string, cf.get(string));
saveFile();
}
}
}
}
public void reloadFile() {
if (file == null) {
file = new File(HotPotato.getPlugin().getDataFolder(), fileName);
}
configFile = YamlConfiguration.loadConfiguration(file);
InputStream defConfigSteam = HotPotato.getPlugin().getResource(fileName);
if (defConfigSteam != null) {
@SuppressWarnings("deprecation")
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigSteam);
defConfig.setDefaults(defConfig);
}
}
public FileConfiguration getFile(){
if(configFile == null){
reloadFile();
}
return configFile;
}
public void saveFile(){
if(file == null || configFile == null){
return;
}
try{
getFile().save(file);
}catch(IOException ex){
ex.printStackTrace();
}
}
public void saveDefaultFile(){
if(file == null){
file = new File(HotPotato.getPlugin().getDataFolder(), fileName);
}
if(!file.exists()){
HotPotato.getPlugin().saveResource(fileName, false);
}
}
}