Beispiel #1
0
        public static Task <string> GiConfirmAction(string action, bool value)
        {
            Globals.DebugWriteLine($@"[JSInvoke:General\GeneralInvocableFuncs.GiConfirmAction] action={action.Split(":")[0]}, value={value}");
            if (!value)
            {
                return(Task.FromResult(""));
            }

            var split = action.Split(":");

            if (split.Length > 1)
            {
                var accName = split[1];

                if (action.StartsWith("AcceptForgetBasicAcc:"))
                {
                    BasicSettings.SetForgetAcc(true);
                    _ = GeneralFuncs.ForgetAccount_Generic(accName, CurrentPlatform.SafeName, true);
                    return(Task.FromResult("refresh"));
                }

                if (action.StartsWith("AcceptForgetSteamAcc:"))
                {
                    SteamSettings.SetForgetAcc(true);
                    _ = SteamSwitcherFuncs.ForgetAccount(accName);
                    return(Task.FromResult("refresh"));
                }

                if (action.StartsWith("AcceptForgetBattleNetAcc:"))
                {
                    BattleNetSettings.SetForgetAcc(true);
                    BattleNetSwitcherFuncs.ForgetAccount(accName);
                    return(Task.FromResult("refresh"));
                }
            }
            switch (action)
            {
            case "ClearBattleNetIgnored":
                BattleNetSwitcherFuncs.ClearIgnored_Confirmed();
                break;

            case "RestartAsAdmin":
                break;
            }

            return(Task.FromResult(""));
        }
Beispiel #2
0
        public void Check(string platform)
        {
            Globals.DebugWriteLine($@"[Func:Index.Check] platform={platform}");
            switch (platform)
            {
            case "BattleNet":
                if (!GeneralFuncs.CanKillProcess(BattleNetSettings.Processes, BattleNetSettings.ClosingMethod))
                {
                    return;
                }
                if (Directory.Exists(BattleNetSettings.FolderPath) && File.Exists(BattleNetSettings.Exe()))
                {
                    AppData.ActiveNavMan.NavigateTo("/BattleNet/");
                }
                else
                {
                    _ = GeneralInvocableFuncs.ShowModal("find:BattleNet:Battle.net.exe:BattleNetSettings");
                }
                break;

            case "Steam":
                if (!GeneralFuncs.CanKillProcess(SteamSettings.Processes, SteamSettings.ClosingMethod))
                {
                    return;
                }
                if (!Directory.Exists(SteamSettings.FolderPath) || !File.Exists(SteamSettings.Exe()))
                {
                    _ = GeneralInvocableFuncs.ShowModal("find:Steam:Steam.exe:SteamSettings");
                    return;
                }
                if (SteamSwitcherFuncs.SteamSettingsValid())
                {
                    AppData.ActiveNavMan.NavigateTo("/Steam/");
                }
                else
                {
                    _ = GeneralInvocableFuncs.ShowModal(Lang["Toast_Steam_CantLocateLoginusers"]);
                }
                break;

            default:
                if (BasicPlatforms.PlatformExistsFromShort(platform))     // Is a basic platform!
                {
                    BasicPlatforms.SetCurrentPlatformFromShort(platform);
                    if (!GeneralFuncs.CanKillProcess(CurrentPlatform.ExesToEnd, BasicSettings.ClosingMethod))
                    {
                        return;
                    }

                    if (Directory.Exists(BasicSettings.FolderPath) && File.Exists(BasicSettings.Exe()))
                    {
                        AppData.ActiveNavMan.NavigateTo("/Basic/");
                    }
                    else
                    {
                        _ = GeneralInvocableFuncs.ShowModal($"find:{CurrentPlatform.SafeName}:{CurrentPlatform.ExeName}:{CurrentPlatform.SafeName}");
                    }
                }
                break;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Main function for Battle.net Account Switcher. Run on load.
        /// Prepares HTML Elements string for insertion into the account switcher GUI.
        /// </summary>
        public static async Task LoadProfiles()
        {
            Globals.DebugWriteLine(@"[Func:BattleNet\BattleNetSwitcherFuncs.LoadProfiles] Loading BattleNet profiles");

            LoadImportantData();
            BattleNetSettings.LoadAccounts();
            // Check if accounts file exists
            if (!File.Exists(BattleNetRoaming + "\\Battle.net.config"))
            {
                _ = GeneralInvocableFuncs.ShowToast("error", Lang["Toast_BNet_CantLoadNotFound"], "toastarea");
                return;
            }

            // Read lines in accounts file
            var file = await File.ReadAllTextAsync(BattleNetRoaming + "\\Battle.net.config").ConfigureAwait(false);

            if (JsonConvert.DeserializeObject(file) is not JObject accountsFile)
            {
                _ = GeneralInvocableFuncs.ShowToast("error", Lang["Toast_BNet_CantLoadConfigCorrupt"], "toastarea");
                return;
            }

            // Verify that there are accounts to iterate over
            var savedAccountsList = accountsFile.SelectToken("Client.SavedAccountNames");

            if (savedAccountsList == null)
            {
                _ = GeneralInvocableFuncs.ShowToast("error", Lang["Toast_BNet_CantLoadEmpty"], "toastarea");
                return;
            }

            foreach (var mail in savedAccountsList.ToString().Split(','))
            {
                if (string.IsNullOrEmpty(mail) || string.IsNullOrWhiteSpace(mail))
                {
                    continue;                                                                // Ignores blank emails sometimes added: ".com, , asdf@..."
                }
                try
                {
                    if (BattleNetSettings.Accounts.Count == 0 || BattleNetSettings.Accounts.All(x => x.Email != mail) && !BattleNetSettings.IgnoredAccounts.Contains(mail) && mail != " ")
                    {
                        BattleNetSettings.Accounts.Add(new BattleNetSwitcherBase.BattleNetUser {
                            Email = mail
                        });
                    }
                }
                catch (NullReferenceException)
                {
                    BattleNetSettings.Accounts.Add(new BattleNetSwitcherBase.BattleNetUser {
                        Email = mail
                    });
                }
            }

            // Order
            if (File.Exists("LoginCache\\BattleNet\\order.json"))
            {
                var savedOrder = JsonConvert.DeserializeObject <List <string> >(await File.ReadAllTextAsync("LoginCache\\BattleNet\\order.json").ConfigureAwait(false));
                if (savedOrder != null)
                {
                    var index = 0;
                    if (savedOrder is { Count : > 0 })