package me.McKiller5252.particlepack.config; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.Plugin; import java.io.File; import java.util.HashMap; import java.util.Map; public class ConfigManager { public static Map<String, FileConfiguration> configs = new HashMap<String, FileConfiguration>(); public static boolean isFileLoaded(String fileName) { return configs.containsKey(fileName); } public static void load(Plugin plugin, String fileName) { File file = new File(plugin.getDataFolder(), fileName); if (!file.exists()) { try { plugin.saveResource(fileName, false); } catch (Exception e) { e.printStackTrace(); } } if (!isFileLoaded(fileName)) { configs.put(fileName, YamlConfiguration.loadConfiguration(file)); } } public static FileConfiguration get(String fileName) { if (isFileLoaded(fileName)) { return configs.get(fileName); } return null; } public static boolean update(String fileName, String path, Object value) { if (isFileLoaded(fileName)) { if (!configs.get(fileName).contains(path)) { configs.get(fileName).set(path, value); return true; } } return false; } public static void set(String fileName, String path, Object value) { if (isFileLoaded(fileName)) { configs.get(fileName).set(path, value); } } public void addComment(String fileName, String path, String... comments) { if (isFileLoaded(fileName)) { for (String comment : comments) { if (!configs.get(fileName).contains(path)) { configs.get(fileName).set("_COMMENT_" + comments.length, " " + comment); } } } } public static void remove(String fileName, String path) { if (isFileLoaded(fileName)) { configs.get(fileName).set(path, null); } } public static boolean contains(String fileName, String path) { return isFileLoaded(fileName) && configs.get(fileName).contains(path); } public static void reload(Plugin plugin, String fileName) { File file = new File(plugin.getDataFolder(), fileName); if (isFileLoaded(fileName)) { try { configs.get(fileName).load(file); } catch (Exception e) { e.printStackTrace(); } } } public static void save(Plugin plugin, String fileName) { File file = new File(plugin.getDataFolder(), fileName); if (isFileLoaded(fileName)) { try { configs.get(fileName).save(file); } catch (Exception e) { e.printStackTrace(); } } } }