예제 #1
0
        private async Task <string> GetSteamHex()
        {
            if (!SteamManager.IsRunning())
            {
                var response = ShowQuestion($"Steam açık değil ve bu şekilde sunucuya bağlanamazsın.{Environment.NewLine}Açmamı ister misin?");
                if (response == MessageBoxResult.Yes)
                {
                    if (SteamManager.RunSteam())
                    {
                        _steamYeniAcildi = true;
                    }
                    else
                    {
                        _steamHex = null;
                        ShowError("Steam'i açamadım. Sen benim yerime açıp, tekrar beni çalıştırabilirsin :)");
                        return(_steamHex);
                    }
                }
                else
                {
                    _steamHex = null;
                    ShowError("Bir sonraki sefere görüşmek üzere :)");
                    return(_steamHex);
                }
            }

            var steamIdOkumaDenemesi = 0;

steamID3Oku:
            var steamID3 = SteamManager.GetSteamID3();

            if (string.IsNullOrEmpty(steamID3) || steamID3.Equals("0"))
            {
                if (_steamYeniAcildi)
                {
                    if (steamIdOkumaDenemesi <= 120) // steam açılmasını 120 saniyeye kadar bekle bekle
                    {
                        steamIdOkumaDenemesi++;
                        Thread.Sleep(1000);
                        goto steamID3Oku;
                    }

                    _steamHex = null;
                    ShowError("Oyuna bağlanabilmek için Steam girişi yapmış olmalısın!");
                    return(_steamHex);
                }

                _steamHex = null;
                ShowError("Oyuna bağlanabilmek için Steam girişi yapmış olmalısın!");
                return(_steamHex);
            }

            var steamID64 = SteamManager.ConvertSteamID64(steamID3);

            if (string.IsNullOrEmpty(steamID64) || steamID64.Equals("0"))
            {
                _steamHex = null;
                ShowError("Steam bilgilerine ulaşamadım. Lütfen daha sonra tekrar dene.");
                return(_steamHex);
            }

            // Steam api'den kullanıcı bilgilerini çek ve kontrol et
            var steamProfile = await SteamManager.GetSteamProfile(SteamProxyURL, steamID64);

            if (steamProfile == null || string.IsNullOrEmpty(steamProfile.Personaname))
            {
                _steamHex = null;
                ShowError("Steam bilgilerinizi okuyamadık!");
                return(_steamHex);
            }

            _steamHex = SteamManager.ConvertSteamIDHex(steamID64);
            return(_steamHex);
        }