private bool OpenConfig(string file, out string message, int loop = 0) { var content = File.ReadAllText(file); if (Support.IsBeta(content)) { BetaLabel.Text = "Beta: True"; } else { BetaLabel.Text = "Beta: False"; } if (Support.IsUsingInstead(content, out var config)) { var combPath = Path.Combine(_configFolder, config.useInstead); if (loop < 5) { return(OpenConfig(combPath, out message, loop + 1)); } else { message = "UseInstead redirected more than 5 times. Loading config aborted."; return(false); } } return(Support.TryParseConfig(content, out _config, out message)); }
private bool OpenConfig(string file, out string message, List <string> searchedJsons = null) { var content = File.ReadAllText(file); if (Support.IsUsingInstead(content, out var config)) { var combPath = Path.Combine(_configFolder, config.useInstead); if (searchedJsons == null) { searchedJsons = new List <string>(); } if (!searchedJsons.Contains(combPath)) { searchedJsons.Add(combPath); return(OpenConfig(combPath, out message, searchedJsons)); } else { message = "UseInstead loop detected."; return(false); } } return(Support.TryParseConfig(content, out _config, out message)); }