168 lines
6.0 KiB
C#
168 lines
6.0 KiB
C#
namespace FlowerPower
|
|
{
|
|
using System;
|
|
using DG.Tweening;
|
|
using UnityEngine;
|
|
|
|
public class LoginSystem : BaseSystem
|
|
{
|
|
|
|
private int loginCount = 0;
|
|
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 TimerTask timerTask = null;
|
|
private void RequestLogin(object obj = null)
|
|
{
|
|
var requestLoginData = new RequestLoginData
|
|
{
|
|
device_id = SystemInfo.deviceUniqueIdentifier,
|
|
pack_name = NetworkManager.identifier,
|
|
app_version = Application.version,
|
|
//is debug test--------
|
|
channel = SuperApplication.Instance.attribution,
|
|
sim = NetworkManager.haveSimCard
|
|
|
|
};
|
|
|
|
var reqData = new RespLoginFunnelData
|
|
{
|
|
type = "loginSend",
|
|
payload = ""
|
|
};
|
|
NetworkKit.PostFunnelLogin(reqData);
|
|
Debug.Log("haveSimCard-----login-" + requestLoginData.sim );
|
|
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.LoginloadingUI_Open);
|
|
|
|
NetworkKit.Post<LoginModel>("login", requestLoginData, (isSuccess, loginData) =>
|
|
{
|
|
if (isSuccess)
|
|
{
|
|
var loginModel = GameHelper.GetLoginModel();
|
|
loginModel.cdn_url = loginData.cdn_url;
|
|
loginModel.setting = loginData.setting;
|
|
loginModel.play_data = loginData.play_data;
|
|
loginModel.token = loginData.token;
|
|
loginModel.uid = loginData.uid;
|
|
loginModel.country = loginData.country;
|
|
loginModel.expires_at = loginData.expires_at;
|
|
loginModel.invite_code = loginData.invite_code;
|
|
loginModel.invite_url = loginData.invite_url;
|
|
loginModel.is_magic = loginData.is_magic;
|
|
loginModel.last_login_time = loginData.last_login_time;
|
|
loginModel.login_time = loginData.login_time;
|
|
loginModel.reg_time = loginData.reg_time;
|
|
loginModel.new_player = loginData.new_player;
|
|
loginModel.play_data_ver = loginData.play_data_ver;
|
|
loginModel.enwp = loginData.enwp;
|
|
loginModel.debug_log = loginData.debug_log;
|
|
|
|
loginModel.preferences = new Preferences();
|
|
NetworkKit.CDNUrl = $"{loginData.cdn_url}/";
|
|
NetworkKit.userId = loginData.uid;
|
|
NetworkKit.SetCacheToken(loginData.token);
|
|
DateTimeManager.Instance.SetServerCurrTimestamp(loginData.login_time);
|
|
RequestHeart();
|
|
Debug.Log("haveSimCard-----is_magic-" + loginModel.is_magic);
|
|
|
|
if (timerTask == null)
|
|
{
|
|
// Debug.Log("$ timer task fuzhi---------");
|
|
timerTask = TimerHelper.UnscaleGeneral.AddLoopTimer(60, (timer) => { RequestHeart(); });
|
|
}
|
|
|
|
GameDispatcher.Instance.Dispatch(GameMsg.netLoading_close);
|
|
NetworkDispatcher.Instance.Dispatch(NetworkMsg.GetPlayData);
|
|
var reqData = new RespLoginFunnelData
|
|
{
|
|
type = "loginRecv",
|
|
payload = "success"
|
|
};
|
|
NetworkKit.PostFunnelLogin(reqData);
|
|
}
|
|
else
|
|
{
|
|
// if (!GameHelper.IsConnect())
|
|
// {
|
|
// loginCount = 0;
|
|
// Action _OnFail = () =>
|
|
// {
|
|
// NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login);
|
|
// };
|
|
// UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.TipsViewUI_Open, _OnFail);
|
|
// return;
|
|
// }
|
|
var reqData = new RespLoginFunnelData
|
|
{
|
|
type = "loginRecv",
|
|
payload = "fail"
|
|
};
|
|
NetworkKit.PostFunnelLogin(reqData);
|
|
|
|
float times = loginCount == 0 ? 0.1f : 5f;
|
|
Debug.Log("dddddd");
|
|
DOVirtual.DelayedCall(times, () =>
|
|
{
|
|
Debug.Log("ssssss");
|
|
if (loginCount < 5)
|
|
{
|
|
loginCount++;
|
|
RequestLogin();
|
|
|
|
}
|
|
else
|
|
{
|
|
loginCount = 0;
|
|
Action _OnFail = () =>
|
|
{
|
|
NetworkDispatcher.Instance.Dispatch(NetworkMsg.Login);
|
|
};
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.TipsViewUI_Open, _OnFail);
|
|
GameDispatcher.Instance.Dispatch(GameMsg.netLoading_close);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
private void RequestHeart()
|
|
{
|
|
NetworkKit.PostWithHeader("user/health");
|
|
|
|
// Debug.Log($"barry 心跳: ---------");
|
|
}
|
|
|
|
public override void Dispose()
|
|
{
|
|
base.Dispose();
|
|
RemoveListener();
|
|
}
|
|
}
|
|
} |