public void Init(IPALogger logger)//, [Config.Prefer("json")] Config conf) { log = logger; log?.Debug("Logger initialized."); //config = conf.Generated<BeatSyncConfig>(); var readerLogger = new Logging.BeatSyncFeedReaderLogger(SongFeedReaders.Logging.LoggingController.DefaultLogController); SongFeedReaders.Logging.LoggingController.DefaultLogger = readerLogger; BeatSyncLib.Logger.log = new BeatSyncLogger(logger); ConfigManager = new ConfigManager(); ConfigInitialized = ConfigManager.InitializeConfig(); if (ConfigInitialized) { modConfig = ConfigManager.Config; config = ConfigManager.Config.BeatSyncConfig; SettingsUI = new UI.SettingsUI(modConfig); } }
public SettingsUI(BeatSyncModConfig modConfig) { BeatSyncModConfig = modConfig ?? throw new ArgumentNullException(nameof(modConfig)); BeatSyncConfig = modConfig.BeatSyncConfig ?? throw new ArgumentNullException(nameof(modConfig)); }
public bool InitializeConfig() { Directory.CreateDirectory(ConfigDirectory); string modConfigPath = BeatSyncModConfigPath; bool validConfig = true; try { if (File.Exists(modConfigPath)) { Config = JsonConvert.DeserializeObject <BeatSyncModConfig>(File.ReadAllText(modConfigPath)); } else { Plugin.log.Info($"{modConfigPath} not found, creating a new one."); Config = BeatSyncModConfig.GetDefaultConfig(); } } catch (JsonReaderException ex) { WriteJsonException(modConfigPath, ex); Config = null; } catch (Exception ex) { Plugin.log.Error($"Invalid {BeatSyncModConfigName} file, using defaults: {ex.Message}"); Plugin.log.Debug(ex); Config = null; } if (Config == null) { Config = BeatSyncModConfig.GetDefaultConfig(); } string beatSyncConfigPath = BeatSyncConfigPath; try { if (File.Exists(beatSyncConfigPath)) { Plugin.log.Debug($"Using BeatSync config '{beatSyncConfigPath}'."); Config.BeatSyncConfig = JsonConvert.DeserializeObject <BeatSyncConfig>(File.ReadAllText(beatSyncConfigPath)); } else { Plugin.log.Info($"{beatSyncConfigPath} not found, creating a new one."); } } catch (JsonReaderException ex) { WriteJsonException(beatSyncConfigPath, ex); } catch (Exception ex) { Plugin.log.Error($"Invalid BeatSync.json file, using defaults: {ex.Message}"); Plugin.log.Debug(ex); } if (Config.BeatSyncConfig == null) { Config.BeatSyncConfig = new BeatSyncConfig(true); } Config.FillDefaults(); string?favoriteMappersPath = FavoriteMappersPath; if (validConfig && favoriteMappersPath != null) { FavoriteMappers favoriteMappers = new FavoriteMappers(favoriteMappersPath); Plugin.log.Info($"Getting FavoriteMappers from '{favoriteMappersPath.Replace(Directory.GetCurrentDirectory(), ".")}'."); List <string> mappers = favoriteMappers.ReadFromFile(); if (mappers.Count > 0) { Config.BeatSyncConfig.BeatSaver.FavoriteMappers.Mappers = mappers.ToArray(); } } var beastSaberConfig = Config.BeatSyncConfig.BeastSaber; SaveConfig(); return(validConfig); }