fix: correctly fail when assets don't download

This commit is contained in:
goat 2020-08-08 12:43:49 +02:00
parent 3f2be06abb
commit 811ec77bee
2 changed files with 12 additions and 4 deletions

View file

@ -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;
}

View file

@ -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<bool> 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;
}
}
}