Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package reghzy.mfunclagfind.config;
- import org.bukkit.plugin.Plugin;
- import reghzy.mfunclagfind.command.SWRCData;
- import reghzy.mfunclagfind.utils.watchdog.ThreadWatchdog;
- import reghzy.minprices.MinPriceRegistry;
- import java.io.File;
- import java.util.Collection;
- import java.util.HashMap;
- public final class ConfigManager {
- private static HashMap<String, Config> configs;
- private static HashMap<Config, ConfigLoadHandler> loadHandlers;
- public static void init(Plugin plugin) {
- File dataFolder = plugin.getDataFolder();
- if (!dataFolder.exists()) {
- if(!dataFolder.mkdir()) {
- throw new RuntimeException("Failed to create plugin data folder!");
- }
- }
- configs = new HashMap<String, Config>();
- loadHandlers = new HashMap<Config, ConfigLoadHandler>();
- registerDefaultConfig("config", new Config(plugin, "config.yml"), new ConfigLoadHandler() {
- @Override
- public void onLoaded(Config config) {
- SWRCData.reloadConfig(config);
- ThreadWatchdog.warningMillis = config.getLong("Watchdog warning millis");
- }
- });
- registerDefaultConfig("minprices", new Config(plugin, "minprices.yml"), new ConfigLoadHandler() {
- @Override
- public void onLoaded(Config config) {
- MinPriceRegistry.getInstance().loadMinPrices(config);
- }
- });
- registerDefaultConfig("states", new Config(plugin, "states.yml"), new ConfigLoadHandler() {
- @Override
- public void onLoaded(Config config) {
- StateRegistry.loadConfig();
- }
- });
- }
- public static boolean loadConfig(Config config) {
- boolean loaded = config.loadData();
- if (!loaded) {
- return false;
- }
- ConfigLoadHandler loadHandler = loadHandlers.get(config);
- if (loadHandler != null) {
- loadHandler.onLoaded(config);
- }
- return true;
- }
- public static Config getConfig(String name) {
- return configs.get(name);
- }
- public static Collection<Config> getConfigs() {
- return configs.values();
- }
- public static void registerDefaultConfig(String name, Config config, ConfigLoadHandler loadHandler) {
- if (!config.getConfigFile().exists()) {
- if (!config.tryCopyDefaultConfig()) {
- config.createFile();
- }
- }
- loadHandlers.put(config, loadHandler);
- registerAndLoadConfig(name, config);
- }
- public static void registerAndCreateConfig(String name, Config config) {
- registerConfig(name, config);
- config.createFile();
- }
- public static void registerAndLoadConfig(String name, Config config) {
- registerConfig(name, config);
- loadConfig(config);
- }
- public static void registerConfig(String name, Config config) {
- configs.put(name, config);
- }
- public static Config removeConfig(String name) {
- return configs.remove(name);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment