bobmarley12345

bukkit config manager

Jun 17th, 2021
1,123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.12 KB | None | 0 0
  1. package reghzy.mfunclagfind.config;
  2.  
  3. import org.bukkit.plugin.Plugin;
  4. import reghzy.mfunclagfind.command.SWRCData;
  5. import reghzy.mfunclagfind.utils.watchdog.ThreadWatchdog;
  6. import reghzy.minprices.MinPriceRegistry;
  7.  
  8. import java.io.File;
  9. import java.util.Collection;
  10. import java.util.HashMap;
  11.  
  12. public final class ConfigManager {
  13.     private static HashMap<String, Config> configs;
  14.     private static HashMap<Config, ConfigLoadHandler> loadHandlers;
  15.  
  16.     public static void init(Plugin plugin) {
  17.         File dataFolder = plugin.getDataFolder();
  18.         if (!dataFolder.exists()) {
  19.             if(!dataFolder.mkdir()) {
  20.                 throw new RuntimeException("Failed to create plugin data folder!");
  21.             }
  22.         }
  23.  
  24.         configs = new HashMap<String, Config>();
  25.         loadHandlers = new HashMap<Config, ConfigLoadHandler>();
  26.  
  27.         registerDefaultConfig("config", new Config(plugin, "config.yml"), new ConfigLoadHandler() {
  28.             @Override
  29.             public void onLoaded(Config config) {
  30.                 SWRCData.reloadConfig(config);
  31.                 ThreadWatchdog.warningMillis = config.getLong("Watchdog warning millis");
  32.             }
  33.         });
  34.  
  35.         registerDefaultConfig("minprices", new Config(plugin, "minprices.yml"), new ConfigLoadHandler() {
  36.             @Override
  37.             public void onLoaded(Config config) {
  38.                 MinPriceRegistry.getInstance().loadMinPrices(config);
  39.             }
  40.         });
  41.  
  42.         registerDefaultConfig("states", new Config(plugin, "states.yml"), new ConfigLoadHandler() {
  43.             @Override
  44.             public void onLoaded(Config config) {
  45.                 StateRegistry.loadConfig();
  46.             }
  47.         });
  48.     }
  49.  
  50.     public static boolean loadConfig(Config config) {
  51.         boolean loaded = config.loadData();
  52.         if (!loaded) {
  53.             return false;
  54.         }
  55.  
  56.         ConfigLoadHandler loadHandler = loadHandlers.get(config);
  57.         if (loadHandler != null) {
  58.             loadHandler.onLoaded(config);
  59.         }
  60.  
  61.         return true;
  62.     }
  63.  
  64.     public static Config getConfig(String name) {
  65.         return configs.get(name);
  66.     }
  67.  
  68.     public static Collection<Config> getConfigs() {
  69.         return configs.values();
  70.     }
  71.  
  72.     public static void registerDefaultConfig(String name, Config config, ConfigLoadHandler loadHandler) {
  73.         if (!config.getConfigFile().exists()) {
  74.             if (!config.tryCopyDefaultConfig()) {
  75.                 config.createFile();
  76.             }
  77.         }
  78.  
  79.         loadHandlers.put(config, loadHandler);
  80.         registerAndLoadConfig(name, config);
  81.     }
  82.  
  83.     public static void registerAndCreateConfig(String name, Config config) {
  84.         registerConfig(name, config);
  85.         config.createFile();
  86.     }
  87.  
  88.     public static void registerAndLoadConfig(String name, Config config) {
  89.         registerConfig(name, config);
  90.         loadConfig(config);
  91.     }
  92.  
  93.     public static void registerConfig(String name, Config config) {
  94.         configs.put(name, config);
  95.     }
  96.  
  97.     public static Config removeConfig(String name) {
  98.         return configs.remove(name);
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment