From 7a0408f5d9621a221e53dc3b0fdff1abaa8f59b8 Mon Sep 17 00:00:00 2001 From: Loporrit <141286461+loporrit@users.noreply.github.com> Date: Fri, 1 Sep 2023 05:31:39 +0000 Subject: [PATCH] Do not present the main Mare server as an option --- .../Configurations/ServerConfig.cs | 1 - .../ServerConfigurationManager.cs | 22 ++++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/MareSynchronos/MareConfiguration/Configurations/ServerConfig.cs b/MareSynchronos/MareConfiguration/Configurations/ServerConfig.cs index b6d55c4..eae2f16 100644 --- a/MareSynchronos/MareConfiguration/Configurations/ServerConfig.cs +++ b/MareSynchronos/MareConfiguration/Configurations/ServerConfig.cs @@ -11,7 +11,6 @@ public class ServerConfig : IMareConfiguration public List ServerStorage { get; set; } = new() { { new ServerStorage() { ServerName = ApiController.LoporritServer, ServerUri = ApiController.LoporritServiceUri } }, - { new ServerStorage() { ServerName = ApiController.MainServer, ServerUri = ApiController.MainServiceUri } }, }; public int Version { get; set; } = 1; diff --git a/MareSynchronos/Services/ServerConfiguration/ServerConfigurationManager.cs b/MareSynchronos/Services/ServerConfiguration/ServerConfigurationManager.cs index 4ed2f3f..b43c11b 100644 --- a/MareSynchronos/Services/ServerConfiguration/ServerConfigurationManager.cs +++ b/MareSynchronos/Services/ServerConfiguration/ServerConfigurationManager.cs @@ -339,18 +339,28 @@ public class ServerConfigurationManager private void EnsureMainExists() { bool lopExists = false; - bool mainExists = false; - _configService.Current.ServerStorage.ForEach((x) => { - _logger.LogDebug(" server uri = {x.ServerUri}"); + int mainIdx = -1; + for (int i = 0; i < _configService.Current.ServerStorage.Count; ++i) + { + var x = _configService.Current.ServerStorage[i]; if (x.ServerUri.Equals(ApiController.LoporritServiceUri, StringComparison.OrdinalIgnoreCase)) lopExists = true; - else if (x.ServerUri.Equals(ApiController.MainServiceUri, StringComparison.OrdinalIgnoreCase)) - mainExists = true; - }); + if (x.ServerUri.Equals(ApiController.MainServiceUri, StringComparison.OrdinalIgnoreCase)) + mainIdx = i; + } + if (mainIdx >= 0) + { + _logger.LogDebug("Removing main server {ApiController.MainServiceUri}"); + _configService.Current.ServerStorage.RemoveAt(mainIdx); + if (_configService.Current.CurrentServer >= mainIdx) + _configService.Current.CurrentServer--; + } if (!lopExists) { _logger.LogDebug("Re-adding missing server {ApiController.LoporritServiceUri}"); _configService.Current.ServerStorage.Insert(0, new ServerStorage() { ServerUri = ApiController.LoporritServiceUri, ServerName = ApiController.LoporritServer }); + if (_configService.Current.CurrentServer >= 0) + _configService.Current.CurrentServer++; } Save(); }