diff --git a/CreamInstaller/CreamInstaller.csproj b/CreamInstaller/CreamInstaller.csproj index 417c9ca..cac3dc1 100644 --- a/CreamInstaller/CreamInstaller.csproj +++ b/CreamInstaller/CreamInstaller.csproj @@ -5,7 +5,7 @@ True Resources\ini.ico true - 3.2.2.2 + 3.2.2.3 Resources\ini.ico LICENSE 2021, pointfeev (https://github.com/pointfeev) diff --git a/CreamInstaller/Epic/EpicStore.cs b/CreamInstaller/Epic/EpicStore.cs index 30f8f4f..e3ab371 100644 --- a/CreamInstaller/Epic/EpicStore.cs +++ b/CreamInstaller/Epic/EpicStore.cs @@ -32,13 +32,20 @@ internal static class EpicStore { response = JsonConvert.DeserializeObject(File.ReadAllText(cacheFile)); } - catch { } + catch + { + File.Delete(cacheFile); + } if (response is null) return dlcIds; try { File.WriteAllText(cacheFile, JsonConvert.SerializeObject(response, Formatting.Indented)); } - catch { } + catch //(Exception e) + { + //using DialogForm dialogForm = new(null); + //dialogForm.Show(SystemIcons.Error, "Unsuccessful serialization of query for category namespace " + categoryNamespace + ":\n\n" + e.ToString(), "FUCK"); + } List searchStore = new(response.Data.Catalog.SearchStore.Elements); foreach (Element element in searchStore) { diff --git a/CreamInstaller/SelectForm.cs b/CreamInstaller/SelectForm.cs index 2ee6d97..326d332 100644 --- a/CreamInstaller/SelectForm.cs +++ b/CreamInstaller/SelectForm.cs @@ -387,66 +387,57 @@ internal partial class SelectForm : CustomForm private async void OnLoad() { - retry: - try + Program.Canceled = false; + blockedGamesCheckBox.Enabled = false; + blockProtectedHelpButton.Enabled = false; + cancelButton.Enabled = true; + scanButton.Enabled = false; + noneFoundLabel.Visible = false; + allCheckBox.Enabled = false; + installButton.Enabled = false; + uninstallButton.Enabled = installButton.Enabled; + selectionTreeView.Enabled = false; + ShowProgressBar(); + + bool setup = true; + int maxProgress = 0; + int curProgress = 0; + Progress progress = new(); + IProgress iProgress = progress; + progress.ProgressChanged += (sender, _progress) => { - Program.Canceled = false; - blockedGamesCheckBox.Enabled = false; - blockProtectedHelpButton.Enabled = false; - cancelButton.Enabled = true; - scanButton.Enabled = false; - noneFoundLabel.Visible = false; - allCheckBox.Enabled = false; - installButton.Enabled = false; - uninstallButton.Enabled = installButton.Enabled; - selectionTreeView.Enabled = false; - ShowProgressBar(); + if (Program.Canceled) return; + if (_progress < 0 || _progress > maxProgress) maxProgress = -_progress; + else curProgress = _progress; + int p = Math.Max(Math.Min((int)((float)(curProgress / (float)maxProgress) * 100), 100), 0); + progressLabel.Text = setup ? $"Setting up SteamCMD . . . {p}%" + : $"Gathering and caching your applicable games and their DLCs . . . {p}%"; + progressBar.Value = p; + }; - bool setup = true; - int maxProgress = 0; - int curProgress = 0; - Progress progress = new(); - IProgress iProgress = progress; - progress.ProgressChanged += (sender, _progress) => - { - if (Program.Canceled) return; - if (_progress < 0 || _progress > maxProgress) maxProgress = -_progress; - else curProgress = _progress; - int p = Math.Max(Math.Min((int)((float)(curProgress / (float)maxProgress) * 100), 100), 0); - progressLabel.Text = setup ? $"Setting up SteamCMD . . . {p}%" - : $"Gathering and caching your applicable games and their DLCs . . . {p}%"; - progressBar.Value = p; - }; - - await ProgramData.Setup(); - if (Directory.Exists(SteamLibrary.InstallPath)) - { - progressLabel.Text = $"Setting up SteamCMD . . . "; - await SteamCMD.Setup(iProgress); - } - setup = false; - progressLabel.Text = "Gathering and caching your applicable games and their DLCs . . . "; - ProgramSelection.ValidateAll(); - TreeNodes.ForEach(node => node.Remove()); - await GetApplicablePrograms(iProgress); - await SteamCMD.Cleanup(); - - HideProgressBar(); - selectionTreeView.Enabled = ProgramSelection.All.Any(); - allCheckBox.Enabled = selectionTreeView.Enabled; - noneFoundLabel.Visible = !selectionTreeView.Enabled; - installButton.Enabled = ProgramSelection.AllUsableEnabled.Any(); - uninstallButton.Enabled = installButton.Enabled; - cancelButton.Enabled = false; - scanButton.Enabled = true; - blockedGamesCheckBox.Enabled = true; - blockProtectedHelpButton.Enabled = true; - } - catch (Exception e) + await ProgramData.Setup(); + if (Directory.Exists(SteamLibrary.InstallPath)) { - if (ExceptionHandler.OutputException(e)) goto retry; - Close(); + progressLabel.Text = $"Setting up SteamCMD . . . "; + await SteamCMD.Setup(iProgress); } + setup = false; + progressLabel.Text = "Gathering and caching your applicable games and their DLCs . . . "; + ProgramSelection.ValidateAll(); + TreeNodes.ForEach(node => node.Remove()); + await GetApplicablePrograms(iProgress); + await SteamCMD.Cleanup(); + + HideProgressBar(); + selectionTreeView.Enabled = ProgramSelection.All.Any(); + allCheckBox.Enabled = selectionTreeView.Enabled; + noneFoundLabel.Visible = !selectionTreeView.Enabled; + installButton.Enabled = ProgramSelection.AllUsableEnabled.Any(); + uninstallButton.Enabled = installButton.Enabled; + cancelButton.Enabled = false; + scanButton.Enabled = true; + blockedGamesCheckBox.Enabled = true; + blockProtectedHelpButton.Enabled = true; } private void OnTreeViewNodeCheckedChanged(object sender, TreeViewEventArgs e) @@ -549,185 +540,198 @@ internal partial class SelectForm : CustomForm private void OnLoad(object sender, EventArgs _) { - HideProgressBar(); - selectionTreeView.TreeViewNodeSorter = new TreeNodeSorter(); - selectionTreeView.AfterCheck += OnTreeViewNodeCheckedChanged; - selectionTreeView.NodeMouseClick += (sender, e) => + retry: + try { - TreeNode node = e.Node; - if (node is null || !node.Bounds.Contains(e.Location) || e.Button != MouseButtons.Right || e.Clicks != 1) - return; - ContextMenuStrip contextMenuStrip = new(); - selectionTreeView.SelectedNode = node; - string id = node.Name; - ProgramSelection selection = ProgramSelection.FromId(id); - (string gameAppId, (DlcType type, string name, string icon) app)? dlc = null; - if (selection is null) dlc = ProgramSelection.GetDlcFromId(id); - ProgramSelection dlcParentSelection = null; - if (dlc is not null) dlcParentSelection = ProgramSelection.FromId(dlc.Value.gameAppId); - if (selection is null && dlcParentSelection is null) - return; - ContextMenuItem header = null; - if (id == "ParadoxLauncher") - header = new(node.Text, "Paradox Launcher"); - else if (selection is not null) - header = new(node.Text, (id, selection.IconUrl, false)); - else if (dlc is not null) - header = new(node.Text, (id, dlc.Value.app.icon, false), (id, dlcParentSelection.IconUrl, false)); - contextMenuStrip.Items.Add(header ?? new ContextMenuItem(node.Text)); - string appInfoVDF = $@"{SteamCMD.AppInfoPath}\{id}.vdf"; - string appInfoJSON = $@"{SteamCMD.AppInfoPath}\{id}.json"; - if (Directory.Exists(Directory.GetDirectoryRoot(appInfoVDF)) && (File.Exists(appInfoVDF) || File.Exists(appInfoJSON))) - { - contextMenuStrip.Items.Add(new ToolStripSeparator()); - contextMenuStrip.Items.Add(new ContextMenuItem("Open AppInfo", "Notepad", - new EventHandler((sender, e) => - { - if (File.Exists(appInfoJSON)) - Diagnostics.OpenFileInNotepad(appInfoJSON); - else if (File.Exists(appInfoVDF)) - Diagnostics.OpenFileInNotepad(appInfoVDF); - }))); - contextMenuStrip.Items.Add(new ContextMenuItem("Refresh AppInfo", "Command Prompt", - new EventHandler((sender, e) => - { - try - { - File.Delete(appInfoVDF); - } - catch { } - try - { - File.Delete(appInfoJSON); - } - catch { } - OnLoad(); - }))); - } - if (selection is not null) + HideProgressBar(); + selectionTreeView.TreeViewNodeSorter = new TreeNodeSorter(); + selectionTreeView.AfterCheck += OnTreeViewNodeCheckedChanged; + selectionTreeView.NodeMouseClick += (sender, e) => { + TreeNode node = e.Node; + if (node is null || !node.Bounds.Contains(e.Location) || e.Button != MouseButtons.Right || e.Clicks != 1) + return; + ContextMenuStrip contextMenuStrip = new(); + selectionTreeView.SelectedNode = node; + string id = node.Name; + ProgramSelection selection = ProgramSelection.FromId(id); + (string gameAppId, (DlcType type, string name, string icon) app)? dlc = null; + if (selection is null) dlc = ProgramSelection.GetDlcFromId(id); + ProgramSelection dlcParentSelection = null; + if (dlc is not null) dlcParentSelection = ProgramSelection.FromId(dlc.Value.gameAppId); + if (selection is null && dlcParentSelection is null) + return; + ContextMenuItem header = null; if (id == "ParadoxLauncher") + header = new(node.Text, "Paradox Launcher"); + else if (selection is not null) + header = new(node.Text, (id, selection.IconUrl, false)); + else if (dlc is not null) + header = new(node.Text, (id, dlc.Value.app.icon, false), (id, dlcParentSelection.IconUrl, false)); + contextMenuStrip.Items.Add(header ?? new ContextMenuItem(node.Text)); + string appInfoVDF = $@"{SteamCMD.AppInfoPath}\{id}.vdf"; + string appInfoJSON = $@"{SteamCMD.AppInfoPath}\{id}.json"; + if (Directory.Exists(Directory.GetDirectoryRoot(appInfoVDF)) && (File.Exists(appInfoVDF) || File.Exists(appInfoJSON))) { - contextMenuStrip.Items.Add(new ToolStripSeparator()); - contextMenuStrip.Items.Add(new ContextMenuItem("Repair", "Command Prompt", - new EventHandler(async (sender, e) => - { - if (!Program.IsProgramRunningDialog(this, selection)) return; - byte[] creamConfig = null; - byte[] steamOriginalSdk32 = null; - byte[] steamOriginalSdk64 = null; - byte[] screamConfig = null; - byte[] epicOriginalSdk32 = null; - byte[] epicOriginalSdk64 = null; - foreach (string directory in selection.DllDirectories) + List queries = new(); + if (File.Exists(appInfoJSON)) + queries.Add(new ContextMenuItem((selection is null || selection.IsSteam) ? "Open Steam Store Query" : "Open Epic GraphQL Query", "Notepad", + new EventHandler((sender, e) => Diagnostics.OpenFileInNotepad(appInfoJSON)))); + if (File.Exists(appInfoVDF)) + queries.Add(new ContextMenuItem("Open SteamCMD Query", "Notepad", + new EventHandler((sender, e) => Diagnostics.OpenFileInNotepad(appInfoVDF)))); + if (queries.Any()) + { + contextMenuStrip.Items.Add(new ToolStripSeparator()); + foreach (ContextMenuItem query in queries) + contextMenuStrip.Items.Add(query); + contextMenuStrip.Items.Add(new ContextMenuItem("Refresh Queries", "Command Prompt", + new EventHandler((sender, e) => { - directory.GetCreamApiComponents(out string sdk32, out string _, out string sdk64, out string _, out string config); - if (creamConfig is null && File.Exists(config)) - creamConfig = File.ReadAllBytes(config); - await InstallForm.UninstallCreamAPI(directory); - if (steamOriginalSdk32 is null && File.Exists(sdk32) && !Properties.Resources.Steamworks32.EqualsFile(sdk32)) - steamOriginalSdk32 = File.ReadAllBytes(sdk32); - if (steamOriginalSdk64 is null && File.Exists(sdk64) && !Properties.Resources.Steamworks64.EqualsFile(sdk64)) - steamOriginalSdk64 = File.ReadAllBytes(sdk64); - directory.GetScreamApiComponents(out sdk32, out string _, out sdk64, out string _, out config); - if (screamConfig is null && File.Exists(config)) - screamConfig = File.ReadAllBytes(config); - await InstallForm.UninstallScreamAPI(directory); - if (epicOriginalSdk32 is null && File.Exists(sdk32) && !Properties.Resources.EpicOnlineServices32.EqualsFile(sdk32)) - epicOriginalSdk32 = File.ReadAllBytes(sdk32); - if (epicOriginalSdk64 is null && File.Exists(sdk64) && !Properties.Resources.EpicOnlineServices64.EqualsFile(sdk64)) - epicOriginalSdk64 = File.ReadAllBytes(sdk64); - } - if (steamOriginalSdk32 is not null || steamOriginalSdk64 is not null || epicOriginalSdk32 is not null || epicOriginalSdk64 is not null) - { - bool neededRepair = false; - foreach (string directory in selection.DllDirectories) + try { - directory.GetCreamApiComponents(out string sdk32, out string _, out string sdk64, out string _, out string config); - if (steamOriginalSdk32 is not null && Properties.Resources.Steamworks32.EqualsFile(sdk32)) - { - steamOriginalSdk32.Write(sdk32); - neededRepair = true; - } - if (steamOriginalSdk64 is not null && Properties.Resources.Steamworks64.EqualsFile(sdk64)) - { - steamOriginalSdk64.Write(sdk64); - neededRepair = true; - } - if (creamConfig is not null) - { - await InstallForm.InstallCreamAPI(directory, selection); - creamConfig.Write(config); - } - - directory.GetScreamApiComponents(out sdk32, out string _, out sdk64, out string _, out config); - if (epicOriginalSdk32 is not null && Properties.Resources.EpicOnlineServices32.EqualsFile(sdk32)) - { - epicOriginalSdk32.Write(sdk32); - neededRepair = true; - } - if (epicOriginalSdk64 is not null && Properties.Resources.EpicOnlineServices64.EqualsFile(sdk64)) - { - epicOriginalSdk64.Write(sdk64); - neededRepair = true; - } - if (screamConfig is not null) - { - await InstallForm.InstallScreamAPI(directory, selection); - screamConfig.Write(config); - } + File.Delete(appInfoVDF); } - if (neededRepair) - new DialogForm(this).Show(Icon, "Paradox Launcher successfully repaired!", "OK"); - else - new DialogForm(this).Show(SystemIcons.Information, "Paradox Launcher does not need to be repaired.", "OK"); - } - else - new DialogForm(this).Show(SystemIcons.Error, "Paradox Launcher repair failed!" - + "\n\nAn original Steamworks/Epic Online Services SDK file could not be found." - + "\nYou must reinstall Paradox Launcher to fix this issue.", "OK"); - }))); - } - contextMenuStrip.Items.Add(new ToolStripSeparator()); - contextMenuStrip.Items.Add(new ContextMenuItem("Open Root Directory", "File Explorer", - new EventHandler((sender, e) => Diagnostics.OpenDirectoryInFileExplorer(selection.RootDirectory)))); - for (int i = 0; i < selection.DllDirectories.Count; i++) - { - string directory = selection.DllDirectories[i]; - contextMenuStrip.Items.Add(new ContextMenuItem($"Open {(selection.IsSteam ? "Steamworks" : "Epic Online Services")} SDK Directory ({i + 1})", "File Explorer", - new EventHandler((sender, e) => Diagnostics.OpenDirectoryInFileExplorer(directory)))); - } - } - if (id != "ParadoxLauncher") - { - if (selection is not null && selection.IsSteam || dlcParentSelection is not null && dlcParentSelection.IsSteam) - { - contextMenuStrip.Items.Add(new ToolStripSeparator()); - contextMenuStrip.Items.Add(new ContextMenuItem("Open SteamDB", "SteamDB", - new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser("https://steamdb.info/app/" + id)))); + catch { } + try + { + File.Delete(appInfoJSON); + } + catch { } + OnLoad(); + }))); + } } if (selection is not null) { - if (selection.IsSteam) - { - contextMenuStrip.Items.Add(new ContextMenuItem("Open Steam Store", "Steam Store", - new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser(selection.ProductUrl)))); - contextMenuStrip.Items.Add(new ContextMenuItem("Open Steam Community", (id, selection.SubIconUrl, true), "Steam Community", - new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser("https://steamcommunity.com/app/" + id)))); - } - else + if (id == "ParadoxLauncher") { contextMenuStrip.Items.Add(new ToolStripSeparator()); - contextMenuStrip.Items.Add(new ContextMenuItem("Open ScreamDB", "ScreamDB", - new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser("https://scream-db.web.app/offers/" + id)))); - contextMenuStrip.Items.Add(new ContextMenuItem("Open Epic Games Store", "Epic Games", - new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser(selection.ProductUrl)))); + contextMenuStrip.Items.Add(new ContextMenuItem("Repair", "Command Prompt", + new EventHandler(async (sender, e) => + { + if (!Program.IsProgramRunningDialog(this, selection)) return; + byte[] creamConfig = null; + byte[] steamOriginalSdk32 = null; + byte[] steamOriginalSdk64 = null; + byte[] screamConfig = null; + byte[] epicOriginalSdk32 = null; + byte[] epicOriginalSdk64 = null; + foreach (string directory in selection.DllDirectories) + { + directory.GetCreamApiComponents(out string sdk32, out string _, out string sdk64, out string _, out string config); + if (creamConfig is null && File.Exists(config)) + creamConfig = File.ReadAllBytes(config); + await InstallForm.UninstallCreamAPI(directory); + if (steamOriginalSdk32 is null && File.Exists(sdk32) && !Properties.Resources.Steamworks32.EqualsFile(sdk32)) + steamOriginalSdk32 = File.ReadAllBytes(sdk32); + if (steamOriginalSdk64 is null && File.Exists(sdk64) && !Properties.Resources.Steamworks64.EqualsFile(sdk64)) + steamOriginalSdk64 = File.ReadAllBytes(sdk64); + directory.GetScreamApiComponents(out sdk32, out string _, out sdk64, out string _, out config); + if (screamConfig is null && File.Exists(config)) + screamConfig = File.ReadAllBytes(config); + await InstallForm.UninstallScreamAPI(directory); + if (epicOriginalSdk32 is null && File.Exists(sdk32) && !Properties.Resources.EpicOnlineServices32.EqualsFile(sdk32)) + epicOriginalSdk32 = File.ReadAllBytes(sdk32); + if (epicOriginalSdk64 is null && File.Exists(sdk64) && !Properties.Resources.EpicOnlineServices64.EqualsFile(sdk64)) + epicOriginalSdk64 = File.ReadAllBytes(sdk64); + } + if (steamOriginalSdk32 is not null || steamOriginalSdk64 is not null || epicOriginalSdk32 is not null || epicOriginalSdk64 is not null) + { + bool neededRepair = false; + foreach (string directory in selection.DllDirectories) + { + directory.GetCreamApiComponents(out string sdk32, out string _, out string sdk64, out string _, out string config); + if (steamOriginalSdk32 is not null && Properties.Resources.Steamworks32.EqualsFile(sdk32)) + { + steamOriginalSdk32.Write(sdk32); + neededRepair = true; + } + if (steamOriginalSdk64 is not null && Properties.Resources.Steamworks64.EqualsFile(sdk64)) + { + steamOriginalSdk64.Write(sdk64); + neededRepair = true; + } + if (creamConfig is not null) + { + await InstallForm.InstallCreamAPI(directory, selection); + creamConfig.Write(config); + } + + directory.GetScreamApiComponents(out sdk32, out string _, out sdk64, out string _, out config); + if (epicOriginalSdk32 is not null && Properties.Resources.EpicOnlineServices32.EqualsFile(sdk32)) + { + epicOriginalSdk32.Write(sdk32); + neededRepair = true; + } + if (epicOriginalSdk64 is not null && Properties.Resources.EpicOnlineServices64.EqualsFile(sdk64)) + { + epicOriginalSdk64.Write(sdk64); + neededRepair = true; + } + if (screamConfig is not null) + { + await InstallForm.InstallScreamAPI(directory, selection); + screamConfig.Write(config); + } + } + if (neededRepair) + new DialogForm(this).Show(Icon, "Paradox Launcher successfully repaired!", "OK"); + else + new DialogForm(this).Show(SystemIcons.Information, "Paradox Launcher does not need to be repaired.", "OK"); + } + else + new DialogForm(this).Show(SystemIcons.Error, "Paradox Launcher repair failed!" + + "\n\nAn original Steamworks/Epic Online Services SDK file could not be found." + + "\nYou must reinstall Paradox Launcher to fix this issue.", "OK"); + }))); + } + contextMenuStrip.Items.Add(new ToolStripSeparator()); + contextMenuStrip.Items.Add(new ContextMenuItem("Open Root Directory", "File Explorer", + new EventHandler((sender, e) => Diagnostics.OpenDirectoryInFileExplorer(selection.RootDirectory)))); + for (int i = 0; i < selection.DllDirectories.Count; i++) + { + string directory = selection.DllDirectories[i]; + contextMenuStrip.Items.Add(new ContextMenuItem($"Open {(selection.IsSteam ? "Steamworks" : "Epic Online Services")} SDK Directory ({i + 1})", "File Explorer", + new EventHandler((sender, e) => Diagnostics.OpenDirectoryInFileExplorer(directory)))); } } - } - contextMenuStrip.Show(selectionTreeView, e.Location); - }; - OnLoad(); + if (id != "ParadoxLauncher") + { + if (selection is not null && selection.IsSteam || dlcParentSelection is not null && dlcParentSelection.IsSteam) + { + contextMenuStrip.Items.Add(new ToolStripSeparator()); + contextMenuStrip.Items.Add(new ContextMenuItem("Open SteamDB", "SteamDB", + new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser("https://steamdb.info/app/" + id)))); + } + if (selection is not null) + { + if (selection.IsSteam) + { + contextMenuStrip.Items.Add(new ContextMenuItem("Open Steam Store", "Steam Store", + new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser(selection.ProductUrl)))); + contextMenuStrip.Items.Add(new ContextMenuItem("Open Steam Community", (id, selection.SubIconUrl, true), "Steam Community", + new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser("https://steamcommunity.com/app/" + id)))); + } + else + { + contextMenuStrip.Items.Add(new ToolStripSeparator()); + contextMenuStrip.Items.Add(new ContextMenuItem("Open ScreamDB", "ScreamDB", + new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser("https://scream-db.web.app/offers/" + id)))); + contextMenuStrip.Items.Add(new ContextMenuItem("Open Epic Games Store", "Epic Games", + new EventHandler((sender, e) => Diagnostics.OpenUrlInInternetBrowser(selection.ProductUrl)))); + } + } + } + contextMenuStrip.Show(selectionTreeView, e.Location); + }; + OnLoad(); + } + catch (Exception e) + { + if (ExceptionHandler.OutputException(e)) goto retry; + Close(); + } } private void OnAccept(bool uninstall = false) diff --git a/CreamInstaller/Steam/SteamStore.cs b/CreamInstaller/Steam/SteamStore.cs index 987d16a..68c9102 100644 --- a/CreamInstaller/Steam/SteamStore.cs +++ b/CreamInstaller/Steam/SteamStore.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; -using System.Drawing; using System.IO; using System.Threading; using System.Threading.Tasks; @@ -44,17 +43,24 @@ internal static class SteamStore try { AppData data = JsonConvert.DeserializeObject(app.Value.ToString()).data; - try + if (data is not null) { - File.WriteAllText(cacheFile, JsonConvert.SerializeObject(data, Formatting.Indented)); + try + { + File.WriteAllText(cacheFile, JsonConvert.SerializeObject(data, Formatting.Indented)); + } + catch //(Exception e) + { + //using DialogForm dialogForm = new(null); + //dialogForm.Show(SystemIcons.Error, "Unsuccessful serialization of query for appid " + appId + ":\n\n" + e.ToString(), "FUCK"); + } + return data; } - catch { } - return data; } - catch (Exception e) + catch //(Exception e) { - using DialogForm dialogForm = new(null); - dialogForm.Show(SystemIcons.Error, "Unsuccessful deserialization of query for appid " + appId + ":\n\n" + e.ToString(), "FUCK"); + //using DialogForm dialogForm = new(null); + //dialogForm.Show(SystemIcons.Error, "Unsuccessful deserialization of query for appid " + appId + ":\n\n" + e.ToString(), "FUCK"); } } } @@ -65,7 +71,10 @@ internal static class SteamStore { return JsonConvert.DeserializeObject(File.ReadAllText(cacheFile)); } - catch { } + catch + { + File.Delete(cacheFile); + } } return null; }