TerrificTable55

Untitled

Nov 13th, 2022
1,176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.60 KB | None | 0 0
  1. class ConfigLoader : Config<ConfigLoader>(ConfigType.LOAD) {
  2.  
  3.     val seperator = "/"
  4.     val basepath = ".${seperator}NoWay"
  5.  
  6.  
  7.     private fun getSettingType(setting: Setting): SettingType? {
  8.         if (setting.isCheck) return SettingType.CHECK
  9.         if (setting.isColor) return SettingType.COLOR
  10.         if (setting.isCombo) return SettingType.COMBO
  11.         if (setting.isSlider) return SettingType.SLIDER
  12.         return null
  13.     }
  14.  
  15.     fun load(baseModulePath: String, module: Module) {
  16.         if (!File("$baseModulePath$seperator${module.name}.json").exists())
  17.             return
  18.  
  19.         val jsonIn = FileIOUtils.readFile("$baseModulePath$seperator${module.name}.json")
  20.         val jsonObj = JsonUtils.convertStringToJsonObject(jsonIn)
  21.  
  22.         module.key = jsonObj["key"].asInt
  23.         module.isToggled = jsonObj["toggled"].asBoolean
  24.         if (module.name == "SaveConfig") module.isToggled = false
  25.  
  26.         if (module.isToggled) module.onEnable()
  27.         if (!module.isToggled) module.onDisable()
  28.  
  29.         val json_settings: JsonObject = jsonObj["settings"].asJsonObject ?: return
  30.         val module_settings = NoWay.settingsManager.getSettingsByMod(module) ?: return
  31.  
  32.         for (setting: Setting in module_settings) {
  33.             val settingType = getSettingType(setting) ?: continue
  34.             val json_setting_value = json_settings[setting.name].asJsonObject["value"]
  35.  
  36.  
  37.             if (settingType == SettingType.CHECK) {
  38.                 setting.valBoolean = json_setting_value.asBoolean
  39.             }
  40.             if (settingType == SettingType.COLOR) {
  41.  
  42.                 setting.color = Color(
  43.                     json_setting_value.asJsonObject["red"].asInt,
  44.                     json_setting_value.asJsonObject["green"].asInt,
  45.                     json_setting_value.asJsonObject["blue"].asInt,
  46.                     json_setting_value.asJsonObject["alpha"].asInt
  47.                 )
  48.             }
  49.             if (settingType == SettingType.COMBO) {
  50.                 setting.valString = json_setting_value.asString
  51.             }
  52.             if (settingType == SettingType.SLIDER) {
  53.                 setting.valDouble = json_setting_value.asDouble
  54.             }
  55.         }
  56.  
  57.     }
  58.  
  59.     override fun call(modules: ArrayList<Module>) {
  60.         println("Loading Module Configs")
  61.  
  62.         val baseModulePath = "$basepath${seperator}modules${seperator}"
  63.         if (!Files.exists(Paths.get(baseModulePath))) {
  64.             Files.createDirectory(Paths.get(baseModulePath))
  65.         }
  66.  
  67.         for (module: Module in modules) {
  68.             load(baseModulePath, module)
  69.         }
  70.     }
  71.  
  72. }
Advertisement
Add Comment
Please, Sign In to add comment