diff --git a/project/Aki.Launcher.Base/Controllers/GameStarter.cs b/project/Aki.Launcher.Base/Controllers/GameStarter.cs index 1f29bcc..4131ac3 100644 --- a/project/Aki.Launcher.Base/Controllers/GameStarter.cs +++ b/project/Aki.Launcher.Base/Controllers/GameStarter.cs @@ -49,10 +49,10 @@ namespace Aki.Launcher if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) return null; - var uninstallStringValue = Registry.LocalMachine.OpenSubKey(registryInstall, false) - ?.GetValue("UninstallString"); - var info = (uninstallStringValue is string key) ? new FileInfo(key) : null; - return info?.DirectoryName; + var installLocation = Registry.LocalMachine.OpenSubKey(registryInstall, false) + ?.GetValue("InstallLocation"); + var info = (installLocation is string key) ? new DirectoryInfo(key) : null; + return info?.FullName; } public async Task LaunchGame(ServerInfo server, AccountInfo account, string gamePath) 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.Base/Helpers/FilePatcher.cs b/project/Aki.Launcher.Base/Helpers/FilePatcher.cs index 05e3917..34650c9 100644 --- a/project/Aki.Launcher.Base/Helpers/FilePatcher.cs +++ b/project/Aki.Launcher.Base/Helpers/FilePatcher.cs @@ -9,8 +9,8 @@ using System; using System.IO; -using System.Reflection.Metadata.Ecma335; using Aki.ByteBanger; +using Aki.Launcher.Controllers; using Aki.Launcher.MiniCommon; using Aki.Launcher.Models.Launcher; @@ -115,14 +115,21 @@ namespace Aki.Launcher.Helpers var target = Path.ChangeExtension(file.FullName, null); // remove patched file - var patched = new FileInfo(target); - patched.IsReadOnly = false; - patched.Delete(); + try + { + var patched = new FileInfo(target); + patched.IsReadOnly = false; + patched.Delete(); - // restore from backup - File.Copy(file.FullName, target); - file.IsReadOnly = false; - file.Delete(); + // Restore from backup + File.Copy(file.FullName, target); + file.IsReadOnly = false; + file.Delete(); + } + catch (Exception ex) + { + LogManager.Instance.Exception(ex); + } } } } diff --git a/project/Aki.Launcher.Base/Helpers/LocalizationProvider.cs b/project/Aki.Launcher.Base/Helpers/LocalizationProvider.cs index 39a5df3..b4a516b 100644 --- a/project/Aki.Launcher.Base/Helpers/LocalizationProvider.cs +++ b/project/Aki.Launcher.Base/Helpers/LocalizationProvider.cs @@ -172,12 +172,17 @@ namespace Aki.Launcher.Helpers englishLocale.i_understand = "I Understand"; englishLocale.game_version_mismatch_format_2 = "SPT is unable to run, this is because SPT expected to find EFT version '{1}',\nbut instead found version '{0}'\n\nEnsure you've downgraded your EFT as described in the install guide\non the page you downloaded SPT from"; englishLocale.description = "Description"; - englishLocale.server_mods = "Server Mods"; - englishLocale.profile_mods = "Profile Mods"; englishLocale.author = "Author"; englishLocale.wipe_on_start = "Wipe profile on game start"; englishLocale.copy_live_settings_question = "Would you like to copy your live game settings to spt"; englishLocale.mod_not_in_server_warning = "This mod was found in your profile, but is not loaded on the server"; + englishLocale.active_server_mods = "Active Server Mods"; + englishLocale.active_server_mods_info_text = "These mods are currently running on the server"; + englishLocale.inactive_server_mods = "Inactive Server Mods"; + englishLocale.inactive_server_mods_info_text = + "These mods have not been loaded by the server, but your profile has used them in the past"; + englishLocale.open_link_question_format_1 = "Are you sure you want to open the following link: \n{0}"; + englishLocale.open_link = "Open Link"; #endregion Directory.CreateDirectory(LocalizationProvider.DefaultLocaleFolderPath); @@ -1576,38 +1581,6 @@ namespace Aki.Launcher.Helpers } #endregion - #region server_mods - private string _server_mods; - public string server_mods - { - get => _server_mods; - set - { - if (_server_mods != value) - { - _server_mods = value; - RaisePropertyChanged(nameof(server_mods)); - } - } - } - #endregion - - #region profile_mods - private string _profile_mods; - public string profile_mods - { - get => _profile_mods; - set - { - if (_profile_mods != value) - { - _profile_mods = value; - RaisePropertyChanged(nameof(profile_mods)); - } - } - } - #endregion - #region author private string _author; public string author @@ -1672,6 +1645,111 @@ namespace Aki.Launcher.Helpers } } #endregion + + #region active_server_mods + private string _active_server_mods; + public string active_server_mods + { + get => _active_server_mods; + set + { + if (_active_server_mods != value) + { + _active_server_mods = value; + RaisePropertyChanged(nameof(active_server_mods)); + } + } + } + #endregion + + #region active_server_mods_info_text + + private string _active_server_mods_info_text; + + public string active_server_mods_info_text + { + get => _active_server_mods_info_text; + set + { + if (_active_server_mods_info_text != value) + { + _active_server_mods_info_text = value; + RaisePropertyChanged(nameof(active_server_mods_info_text)); + } + } + } + #endregion + + #region inactive_server_mods + private string _inactive_server_mods; + public string inactive_server_mods + { + get => _inactive_server_mods; + set + { + if (_inactive_server_mods != value) + { + _inactive_server_mods = value; + RaisePropertyChanged(nameof(inactive_server_mods)); + } + } + } + #endregion + + #region inactive_server_mods_info_text + + private string _inactive_server_mods_info_text; + + public string inactive_server_mods_info_text + { + get => _inactive_server_mods_info_text; + set + { + if (_inactive_server_mods_info_text != value) + { + _inactive_server_mods_info_text = value; + RaisePropertyChanged(nameof(inactive_server_mods_info_text)); + } + } + } + #endregion + + #region open_link_question_format_1 + + private string _open_link_question_format_1; + + public string open_link_question_format_1 + { + get => _open_link_question_format_1; + set + { + if (_open_link_question_format_1 != value) + { + _open_link_question_format_1 = value; + RaisePropertyChanged(nameof(open_link_question_format_1)); + } + } + } + #endregion + + #region open_link + + private string _open_link; + + public string open_link + { + get => _open_link; + set + { + if (_open_link != value) + { + _open_link = value; + RaisePropertyChanged(nameof(open_link)); + } + } + } + #endregion + #endregion public event PropertyChangedEventHandler PropertyChanged; diff --git a/project/Aki.Launcher.Base/Helpers/ValidationUtil.cs b/project/Aki.Launcher.Base/Helpers/ValidationUtil.cs index 2e894c2..2f3d1ac 100644 --- a/project/Aki.Launcher.Base/Helpers/ValidationUtil.cs +++ b/project/Aki.Launcher.Base/Helpers/ValidationUtil.cs @@ -12,24 +12,24 @@ namespace Aki.Launcher.Helpers try { - var v1 = Registry.LocalMachine.OpenSubKey(c0, false).GetValue("UninstallString"); + var v1 = Registry.LocalMachine.OpenSubKey(c0, false).GetValue("InstallLocation"); var v2 = (v1 != null) ? v1.ToString() : string.Empty; - var v3 = new FileInfo(v2); - var v4 = new FileInfo[] + var v3 = new DirectoryInfo(v2); + var v4 = new FileSystemInfo[] { v3, - new FileInfo(v2.Replace(v3.Name, @"BattlEye\BEClient_x64.dll")), - new FileInfo(v2.Replace(v3.Name, @"BattlEye\BEService_x64.dll")), - new FileInfo(v2.Replace(v3.Name, @"ConsistencyInfo")), - new FileInfo(v2.Replace(v3.Name, @"Uninstall.exe")), - new FileInfo(v2.Replace(v3.Name, @"UnityCrashHandler64.exe")) + new FileInfo(Path.Join(v2, @"BattlEye\BEClient_x64.dll")), + new FileInfo(Path.Join(v2, @"BattlEye\BEService_x64.dll")), + new FileInfo(Path.Join(v2, "ConsistencyInfo")), + new FileInfo(Path.Join(v2, "Uninstall.exe")), + new FileInfo(Path.Join(v2, "UnityCrashHandler64.exe")) }; v0 = v4.Length - 1; foreach (var value in v4) { - if (File.Exists(value.FullName)) + if (value.Exists) { --v0; } diff --git a/project/Aki.Launcher.Base/Models/Aki/AkiMod.cs b/project/Aki.Launcher.Base/Models/Aki/AkiMod.cs index 7bd2dc8..4f0b81d 100644 --- a/project/Aki.Launcher.Base/Models/Aki/AkiMod.cs +++ b/project/Aki.Launcher.Base/Models/Aki/AkiMod.cs @@ -7,5 +7,6 @@ public string Author { get; set; } public string Name { get; set; } public string Version { get; set; } + public string Url { get; set; } } } diff --git a/project/Aki.Launcher.Base/Models/Aki/AkiVersion.cs b/project/Aki.Launcher.Base/Models/Aki/AkiVersion.cs index a2f2afa..b4c2d1e 100644 --- a/project/Aki.Launcher.Base/Models/Aki/AkiVersion.cs +++ b/project/Aki.Launcher.Base/Models/Aki/AkiVersion.cs @@ -34,7 +34,6 @@ namespace Aki.Launcher.Models.Aki AkiVersion = versionInfo[0]; Tag = versionInfo[1]; - return; } string[] splitVersion = AkiVersion.Split('.'); diff --git a/project/Aki.Launcher.Base/Models/Launcher/ModInfoCollection.cs b/project/Aki.Launcher.Base/Models/Launcher/ModInfoCollection.cs index 7a80a7f..aa6b4c3 100644 --- a/project/Aki.Launcher.Base/Models/Launcher/ModInfoCollection.cs +++ b/project/Aki.Launcher.Base/Models/Launcher/ModInfoCollection.cs @@ -20,7 +20,7 @@ namespace Aki.Launcher.Models.Launcher } } } - + private int _profileModsCount; public int ProfileModsCount { @@ -35,20 +35,6 @@ namespace Aki.Launcher.Models.Launcher } } - private bool _hasProfileOnlyMods; - public bool HasProfileOnlyMods - { - get => _hasProfileOnlyMods; - set - { - if (_hasProfileOnlyMods != value) - { - _hasProfileOnlyMods = value; - RaisePropertyChanged(nameof(HasProfileOnlyMods)); - } - } - } - private bool _hasMods; public bool HasMods { @@ -63,7 +49,8 @@ namespace Aki.Launcher.Models.Launcher } } - public ObservableCollection Mods { get; private set; } = new ObservableCollection(); + public ObservableCollection ActiveMods { get; private set; } = new ObservableCollection(); + public ObservableCollection InactiveMods { get; private set; } = new ObservableCollection(); public ModInfoCollection() { @@ -73,15 +60,15 @@ namespace Aki.Launcher.Models.Launcher ServerModsCount = serverMods?.Count() ?? 0; ProfileModsCount = profileMods?.Count() ?? 0; - foreach (var serverMod in serverMods) + foreach (var activeMod in serverMods) { - serverMod.InServer = true; - Mods.Add(serverMod); + activeMod.InServer = true; + ActiveMods.Add(activeMod); } - foreach (var profileMod in profileMods) + foreach (var inactiveMod in profileMods) { - var existingMod = Mods.Where(x => x.Name == profileMod.Name && x.Version == profileMod.Version && x.Author == profileMod.Author).FirstOrDefault(); + var existingMod = ActiveMods.Where(x => x.Name == inactiveMod.Name && x.Version == inactiveMod.Version && x.Author == inactiveMod.Author).FirstOrDefault(); if (existingMod != null) { @@ -89,12 +76,11 @@ namespace Aki.Launcher.Models.Launcher continue; } - profileMod.InProfile = true; - Mods.Add(profileMod); + inactiveMod.InProfile = true; + InactiveMods.Add(inactiveMod); } - HasMods = Mods.Count() > 0; - HasProfileOnlyMods = Mods.Where(x => x.InProfile && !x.InServer).Count() > 0; + HasMods = ActiveMods.Count > 0 || InactiveMods.Count > 0; } public event PropertyChangedEventHandler PropertyChanged; diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Chinese (Simplified).json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Chinese (Simplified).json index 9ddeb28..99f6f19 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Chinese (Simplified).json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Chinese (Simplified).json @@ -81,13 +81,17 @@ "i_understand": "我了解", "game_version_mismatch_format_2": "SPT无法运行,这是由于SPT需要EFT版本 '{1}',\n但现有版本是 '{0}'\n\n确保你已经按照你下载SPT的页面上的\n安装指导的描述降级你的EFT", "description": "描述", - "server_mods": "Server Mods", - "profile_mods": "Profile Mods", "author": "Author", "load_live_settings": "Load Live Settings", "load_live_settings_succeeded": "Game settings copied from live", "load_live_settings_failed": "Failed to copy live settings", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Chinese (Traditional).json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Chinese (Traditional).json index 59cad68..ecafdf6 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Chinese (Traditional).json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Chinese (Traditional).json @@ -81,13 +81,17 @@ "i_understand": "I Understand", "game_version_mismatch_format_2": "SPT is unable to run, this is because SPT expected to find EFT version '{1}',\nbut instead found version '{0}'\n\nEnsure you've downgraded your EFT as described in the install guide\non the page you downloaded SPT from", "description": "Description", - "server_mods": "Server Mods", - "profile_mods": "Profile Mods", "author": "Author", "load_live_settings": "Load Live Settings", "load_live_settings_succeeded": "Game settings copied from live", "load_live_settings_failed": "Failed to copy live settings", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/English.json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/English.json index f84bd3f..64b4ab0 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/English.json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/English.json @@ -81,13 +81,17 @@ "i_understand": "I Understand", "game_version_mismatch_format_2": "SPT is unable to run, this is because SPT expected to find EFT version '{1}',\nbut instead found version '{0}'\n\nEnsure you've downgraded your EFT as described in the install guide\non the page you downloaded SPT from", "description": "Description", - "server_mods": "Server Mods", - "profile_mods": "Profile Mods", "author": "Author", "load_live_settings": "Load Live Settings", "load_live_settings_succeeded": "Game settings copied from live", "load_live_settings_failed": "Failed to copy live settings", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/French.json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/French.json index acda7fb..a1c4d11 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/French.json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/French.json @@ -81,13 +81,17 @@ "i_understand": "I Understand", "game_version_mismatch_format_2": "SPT is unable to run, this is because SPT expected to find EFT version '{1}',\nbut instead found version '{0}'\n\nEnsure you've downgraded your EFT as described in the install guide\non the page you downloaded SPT from", "description": "Description", - "server_mods": "Server Mods", - "profile_mods": "Profile Mods", "author": "Author", "load_live_settings": "Load Live Settings", "load_live_settings_succeeded": "Game settings copied from live", "load_live_settings_failed": "Failed to copy live settings", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/German.json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/German.json index 26108c2..b87e533 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/German.json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/German.json @@ -81,13 +81,17 @@ "i_understand": "I Understand", "game_version_mismatch_format_2": "SPT is unable to run, this is because SPT expected to find EFT version '{1}',\nbut instead found version '{0}'\n\nEnsure you've downgraded your EFT as described in the install guide\non the page you downloaded SPT from", "description": "Description", - "server_mods": "Server Mods", - "profile_mods": "Profile Mods", "author": "Author", "load_live_settings": "Load Live Settings", "load_live_settings_succeeded": "Game settings copied from live", "load_live_settings_failed": "Failed to copy live settings", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Italian.json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Italian.json index 6b838c9..cee5e8c 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Italian.json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Italian.json @@ -81,13 +81,17 @@ "i_understand": "Accetto", "game_version_mismatch_format_2": "SPT non riesce ad avviarsi, questo è perché SPT si aspettava la versione di EFT '{1}',\nmentre invece tu hai la versione '{0}'\n\nAssicurati di aver downgradato correttamente EFT come descritto nella guida all'installazione\nche hai trovato sulla pagina web da cui hai scaricato SPT", "description": "Descrizione", - "server_mods": "Server Mods", - "profile_mods": "Profile Mods", "author": "Author", "load_live_settings": "Load Live Settings", "load_live_settings_succeeded": "Game settings copied from live", "load_live_settings_failed": "Failed to copy live settings", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Japanese.json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Japanese.json index 4cd3b99..56a3321 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Japanese.json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Japanese.json @@ -81,13 +81,17 @@ "i_understand": "了解", "game_version_mismatch_format_2": "SPT を実行できません。これは、SPT が EFT バージョン '{1}' を検出することを期待していたためです\n代わりにバージョン '{0}' を検出しました\n\nインストール ガイドの説明に従って EFT をダウングレードしたことを確認してください\n SPT をダウンロードしたページ", "description": "Description", - "server_mods": "Server Mods", - "profile_mods": "Profile Mods", "author": "Author", "load_live_settings": "Load Live Settings", "load_live_settings_succeeded": "Game settings copied from live", "load_live_settings_failed": "Failed to copy live settings", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Korean.json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Korean.json index f7af75b..01a7e48 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Korean.json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Korean.json @@ -81,13 +81,17 @@ "i_understand": "이해하였습니다", "game_version_mismatch_format_2": "당신의 게임 버전은 '{0}'이며 호환되는 버전은 '{1}' 입니다.\n\n게임 실행에 문제가 발생하거나 되지 않을 수 있습니다.", "description": "설명", - "server_mods": "서버 모드", - "profile_mods": "프로필 모드", "author": "개발자", "load_live_settings": "공식(Live) 서버의 설정 불러오기", "load_live_settings_succeeded": "공식(Live) 서버 설정을 불러왔습니다", "load_live_settings_failed": "공식(Live) 서버 설정 불러오기에 실패하였습니다", "wipe_on_start": "게임 시작 시 프로필 초기화", "copy_live_settings_question": "공식(Live) 서버에서 사용하던 설정 파일을 SPT에 복사하시겠습니까?", - "mod_not_in_server_warning":"SPT 서버에 없는 모드가 플레이어 프로필에서 발견되었습니다" + "mod_not_in_server_warning":"SPT 서버에 없는 모드가 플레이어 프로필에서 발견되었습니다", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Polish.json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Polish.json index 9c2d2dc..3542d09 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Polish.json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Polish.json @@ -81,13 +81,17 @@ "i_understand": "Rozumiem", "game_version_mismatch_format_2": "SPT nie może zostać uruchomiony, ponieważ SPT oczekiwał wersji EFT '{1}',\nale zamiast tego znalazł wersję '{0}'\n\nUpewnij się, że zainstalowałeś starszą wersję EFT, zgodnie z instrukcją instalacji\nna stronie, z której pobrałeś SPT", "description": "Opis", - "server_mods": "Mody serwera", - "profile_mods": "Mody profilu", "author": "Autor", "load_live_settings": "Wczytaj ustawienia EFT", "load_live_settings_succeeded": "Ustawienia gry skopiowane z EFT", "load_live_settings_failed": "Nie udało się skopiować ustawień EFT", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Russian.json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Russian.json index 5bd6d44..61347d7 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Russian.json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Russian.json @@ -81,13 +81,17 @@ "i_understand": "Я понимаю", "game_version_mismatch_format_2": "Ваша версия игры: '{0}' и совместимая версия: '{1}'.\n\nИгра может работать некорректно или не работать вообще.", "description": "Описание", - "server_mods": "Серверные моды", - "profile_mods": "Моды профиля", "author": "Автор", "load_live_settings": "Загрузить настройкий онлайн-версии", "load_live_settings_succeeded": "Настройки игры скопированы из онлайн-версии", "load_live_settings_failed": "Не удалось скопировать настройки онлайн-версии", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Spanish.json b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Spanish.json index 1423db8..b5fd961 100644 --- a/project/Aki.Launcher/Aki_Data/Launcher/Locales/Spanish.json +++ b/project/Aki.Launcher/Aki_Data/Launcher/Locales/Spanish.json @@ -81,13 +81,17 @@ "i_understand": "Lo entiendo", "game_version_mismatch_format_2": "SPT no puede iniciar, esto es debido a que la versión de EFT esperada es '{1}',\npero la versión encontrada es '{0}'\n\nAsegurate de haber realizado el downgrade de tu versión de EFT, tal como se indica en la guía de instalación\nen la página en la que has descargado SPT", "description": "Descripción", - "server_mods": "Server Mods", - "profile_mods": "Profile Mods", "author": "Author", "load_live_settings": "Load Live Settings", "load_live_settings_succeeded": "Game settings copied from live", "load_live_settings_failed": "Failed to copy live settings", "wipe_on_start": "Wipe profile on game start", "copy_live_settings_question": "Would you like to copy your live game settings to spt", - "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server" + "mod_not_in_server_warning":"This mod was found in your profile, but is not loaded on the server", + "active_server_mods": "Active Server Mods", + "active_server_mods_info_text": "These mods are currently running on the server", + "inactive_server_mods": "Inactive Server Mods", + "inactive_server_mods_info_text": "These mods have not been loaded by the server, but your profile has used them in the past", + "open_link_question_format_1": "Are you sure you want to open the following link: \n{0}", + "open_link": "Open Link" } \ No newline at end of file diff --git a/project/Aki.Launcher/App.axaml b/project/Aki.Launcher/App.axaml index ec353f3..4ecaa8a 100644 --- a/project/Aki.Launcher/App.axaml +++ b/project/Aki.Launcher/App.axaml @@ -31,34 +31,37 @@ - + - - - - - - - + + - - + + + diff --git a/project/Aki.Launcher/CustomControls/ModInfoCard.axaml b/project/Aki.Launcher/CustomControls/ModInfoCard.axaml index 8982a1d..c1321f1 100644 --- a/project/Aki.Launcher/CustomControls/ModInfoCard.axaml +++ b/project/Aki.Launcher/CustomControls/ModInfoCard.axaml @@ -13,21 +13,26 @@ Background="{StaticResource AKI_Background_Dark}" > + + VerticalAlignment="Center" + Orientation="Horizontal" Spacing="5" + > + + IsVisible="{Binding IsInServer, RelativeSource={RelativeSource AncestorType=UserControl}}" + /> + + + - @@ -39,15 +44,38 @@ + + + +