using System; using IgnoreOPS; using SGModule.Common.Extensions; using SGModule.Common.Helper; using SGModule.NetKit; using UnityEngine; namespace BallKingdomCrush { public class LoginSystem : BaseSystem { private int loginCount = 0; private bool _isLogin = false; private TimerTask timerTask = null; public LoginSystem(bool isAutoInit = true) { if (isAutoInit) { Init(); } } public sealed override void Init() { base.Init(); InitData(); AddListener(); } private void InitData() { } private void AddListener() { NetworkDispatcher.Instance.AddListener(NetworkMsg.Login, RequestLogin); } private void RemoveListener() { NetworkDispatcher.Instance.RemoveListener(NetworkMsg.Login, RequestLogin); } private void RequestLogin(object obj = null) { // if (!GameHelper.IsConnect()) // { // LoginFail(); // } // else // { if (_isLogin) return; _isLogin = true; TrackKit.TrackLoginFunnel(LoginFunnelEventType.LoginSend); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetworkErrorTipsUI_Open); Log.Info("login request", $"attribution: {SuperApplication.Instance.attribution}, haveSimCard: {NetworkManager.haveSimCard}"); LoginKit.Instance.LoginRequest(SuperApplication.Instance.attribution.ToLower(), NetworkManager.haveSimCard, (isSuccess, loginData) => { TrackKit.TrackLoginFunnel(LoginFunnelEventType.LoginRecv, isSuccess ? "success" : "fail"); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetworkErrorTipsUI_Close); Debug.Log($"loginData.uid======={loginData.Uid}"); if (isSuccess) { Debug.Log($"loginData.CdnURL======={loginData.CdnURL}"); // AB上传 BI BIManager.Instance.TrackABConfig(loginData.IsMagic ? 30 : 15); // loginData.CdnURL = "https://asserts.minskyfun.top"; // TextureHelper.imgUrl = loginData.CdnURL + "/encrypt/image/"; // LiveVideoManager.videoBaseUrl = loginData.CdnURL + "/encrypt/video/"; DateTimeManager.Instance.SetServerCurrTimestamp(loginData.LoginTime); NetworkDispatcher.Instance.Dispatch(NetworkMsg.GetPlayData); MaxADKit.SetUserID(loginData.Uid.As()); } else { LoginFail(); } }); // } } private static void LoginFail() { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.NetLoadingUI_Close); void OnFail() { NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login); } UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.TipsViewUI_Open, (Action) OnFail); } public override void Dispose() { base.Dispose(); RemoveListener(); } } }