示例#1
0
        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);
            }
        }
示例#2
0
 public SettingsUI(BeatSyncModConfig modConfig)
 {
     BeatSyncModConfig = modConfig ?? throw new ArgumentNullException(nameof(modConfig));
     BeatSyncConfig    = modConfig.BeatSyncConfig ?? throw new ArgumentNullException(nameof(modConfig));
 }
示例#3
0
        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);
        }