From 811ec77beef1611904ad5696d172e0f03ac0bce3 Mon Sep 17 00:00:00 2001 From: goat <16760685+goaaats@users.noreply.github.com> Date: Sat, 8 Aug 2020 12:43:49 +0200 Subject: [PATCH] fix: correctly fail when assets don't download --- Dalamud/Dalamud.cs | 10 ++++++++-- Dalamud/Interface/AssetManager.cs | 6 ++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Dalamud/Dalamud.cs b/Dalamud/Dalamud.cs index d70164380..20746fd30 100644 --- a/Dalamud/Dalamud.cs +++ b/Dalamud/Dalamud.cs @@ -91,9 +91,15 @@ namespace Dalamud { Task.Run(async () => { try { - await AssetManager.EnsureAssets(this.baseDirectory); + var res = await AssetManager.EnsureAssets(this.baseDirectory); + + if (!res) { + Log.Error("One or more assets failed to download."); + Unload(); + return; + } } catch (Exception e) { - Log.Error(e, "Could not ensure assets."); + Log.Error(e, "Error in asset task."); Unload(); return; } diff --git a/Dalamud/Interface/AssetManager.cs b/Dalamud/Interface/AssetManager.cs index 108d3ab16..e45ad1015 100644 --- a/Dalamud/Interface/AssetManager.cs +++ b/Dalamud/Interface/AssetManager.cs @@ -27,7 +27,7 @@ namespace Dalamud.Interface {"https://img.finalfantasyxiv.com/lds/pc/global/fonts/FFXIV_Lodestone_SSF.ttf", "UIRes/gamesym.ttf" } }; - public static async Task EnsureAssets(string baseDir) { + public static async Task EnsureAssets(string baseDir) { using var client = new WebClient(); Log.Verbose("Starting asset download"); @@ -42,11 +42,13 @@ namespace Dalamud.Interface try { File.WriteAllBytes(filePath, client.DownloadData(entry.Key)); } catch (Exception ex) { - // If another game is running, we don't want to just fail in here Log.Error(ex, "Could not download asset."); + return false; } } } + + return true; } } }