1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-11-29 14:05:25 +01:00
Jobs/com/gamingmesh/jobs/config/YmlMaker.java
2015-08-21 16:10:08 +03:00

93 lines
2.3 KiB
Java

package com.gamingmesh.jobs.config;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
import com.gamingmesh.jobs.JobsPlugin;
public class YmlMaker
{
JobsPlugin Plugin;
public String fileName;
private JavaPlugin plugin;
public File ConfigFile;
private FileConfiguration Configuration;
public YmlMaker(JobsPlugin Plugin)
{
this.Plugin = Plugin;
}
public YmlMaker(JavaPlugin plugin, String fileName)
{
if (plugin == null) {
throw new IllegalArgumentException("plugin cannot be null");
}
this.plugin = plugin;
this.fileName = fileName;
File dataFolder = plugin.getDataFolder();
if (dataFolder == null) {
throw new IllegalStateException();
}
this.ConfigFile = new File(dataFolder.toString() + File.separatorChar + this.fileName);
}
public void reloadConfig()
{
try {
this.Configuration = YamlConfiguration.loadConfiguration(new InputStreamReader(new FileInputStream(this.ConfigFile), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
InputStream defConfigStream = this.plugin.getResource(this.fileName);
if (defConfigStream != null)
{
@SuppressWarnings("deprecation")
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
this.Configuration.setDefaults(defConfig);
}
}
public FileConfiguration getConfig()
{
if (this.Configuration == null) {
reloadConfig();
}
return this.Configuration;
}
public void saveConfig()
{
if ((this.Configuration == null) || (this.ConfigFile == null)) {
return;
}
try
{
getConfig().save(this.ConfigFile);
} catch (IOException ex)
{
this.plugin.getLogger().log(Level.SEVERE, "Could not save config to " + this.ConfigFile, ex);
}
}
public void saveDefaultConfig()
{
if (!this.ConfigFile.exists()) {
this.plugin.saveResource(this.fileName, false);
}
}
}