From b965db2211e8baaf869aa30d09bdbdeb94fb07ca Mon Sep 17 00:00:00 2001 From: "waffle.lord" Date: Tue, 5 Dec 2023 10:00:37 -0500 Subject: [PATCH] return bool when loading server --- .../Aki.Launcher.Base/Controllers/ServerManager.cs | 14 ++++++-------- .../ViewModels/ConnectServerViewModel.cs | 10 ++++++++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/project/Aki.Launcher.Base/Controllers/ServerManager.cs b/project/Aki.Launcher.Base/Controllers/ServerManager.cs index ab76001..d424d26 100644 --- a/project/Aki.Launcher.Base/Controllers/ServerManager.cs +++ b/project/Aki.Launcher.Base/Controllers/ServerManager.cs @@ -92,7 +92,7 @@ namespace Aki.Launcher } } - public static void LoadServer(string backendUrl) + public static bool LoadServer(string backendUrl) { string json = ""; @@ -100,22 +100,20 @@ namespace Aki.Launcher { RequestHandler.ChangeBackendUrl(backendUrl); json = RequestHandler.RequestConnect(); + SelectedServer = Json.Deserialize(json); } catch { SelectedServer = null; - return; + return false; } - SelectedServer = Json.Deserialize(json); + return true; } - public static async Task LoadDefaultServerAsync(string server) + public static async Task LoadDefaultServerAsync(string server) { - await Task.Run(() => - { - LoadServer(server); - }); + return await Task.Run(() => LoadServer(server)); } } } diff --git a/project/Aki.Launcher/ViewModels/ConnectServerViewModel.cs b/project/Aki.Launcher/ViewModels/ConnectServerViewModel.cs index 6b739f1..017ed5c 100644 --- a/project/Aki.Launcher/ViewModels/ConnectServerViewModel.cs +++ b/project/Aki.Launcher/ViewModels/ConnectServerViewModel.cs @@ -32,8 +32,14 @@ namespace Aki.Launcher.ViewModels public async Task ConnectServer() { - await ServerManager.LoadDefaultServerAsync(LauncherSettingsProvider.Instance.Server.Url); - + if (!await ServerManager.LoadDefaultServerAsync(LauncherSettingsProvider.Instance.Server.Url)) + { + connectModel.ConnectionFailed = true; + connectModel.InfoText = string.Format(LocalizationProvider.Instance.server_unavailable_format_1, + LauncherSettingsProvider.Instance.Server.Name); + return; + } + bool connected = ServerManager.PingServer(); connectModel.ConnectionFailed = !connected;