123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- using ET;
- using TapTap.Bootstrap;
- using TapTap.Common;
- using TapTap.TapDB;
- using Plugins.AntiAddictionUIKit;
- using System;
- using System.Threading.Tasks;
- using UnityEngine;
- namespace GFGGame
- {
- public class QDTapTapManager : SingletonBase<QDTapTapManager>
- {
- private readonly string ClientID = "K7bDyPGYlVx2AAtk6q";
- public void InitSDK()
- {
- Log.Debug($"tap InitSDK");
- if (!QDManager.IsTaptap)
- {
- return;
- }
- var config = new TapConfig.Builder()
- .ClientID(ClientID)
- .ClientToken("fjwWBtibB4Dj3UjyRQxK2tZ3f8fGNgg14tcRW38D")
- .ServerURL("https://k7bdypgy.cloud.tds1.tapapis.cn")
- .RegionType(RegionType.CN)
- .TapDBConfig(true, "tap", null, true)
- .ConfigBuilder();
- TapBootstrap.Init(config);
- EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, true);
- }
- public async Task Login()
- {
- Log.Debug($"tap login");
- if (!QDManager.IsTaptap)
- {
- EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, null);
- return;
- }
- ViewManager.Show<ModalStatusView>("登录中...");
- TDSUser tdsUser = await TDSUser.GetCurrent();
- if (null != tdsUser)
- {
- EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, tdsUser.ObjectId);
- InitAntiAddiction(tdsUser.ObjectId);
- return;
- }
- try
- {
- tdsUser = await TDSUser.LoginWithTapTap();
- Log.Debug($"tap login Success:{tdsUser}");
- EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, tdsUser.ObjectId);
- InitAntiAddiction(tdsUser.ObjectId);
- }
- catch (Exception e)
- {
- if (e is TapException tapError)
- {
- if (tapError.code == (int)TapErrorCode.ERROR_CODE_BIND_CANCEL) // 取消登录
- {
- Log.Debug("登录取消");
- ViewManager.Hide<ModalStatusView>();
- return;
- }
- else
- {
- Log.Error($"Login Error:{tapError.code} message:{tapError.message}");
- PromptController.Instance.ShowFloatTextPrompt(tapError.message);
- }
- }
- else
- {
- Log.Error($"Login Error:{e}");
- PromptController.Instance.ShowFloatTextPrompt("登录异常");
- }
- EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, null);
- }
- }
- public void InitAntiAddiction(string objectId)
- {
- Log.Debug($"tap InitAntiAddiction objectId {objectId}");
- ViewManager.Show<ModalStatusView>("登录中...");
- string gameIdentifier = ClientID;
- // 是否启用时长限制功能
- bool useTimeLimit = true;
- // 是否启用消费限制功能
- bool usePaymentLimit = false;
- // 是否显示切换账号按钮
- bool showSwitchAccount = true;
- AntiAddictionUIKit.Init(gameIdentifier, useTimeLimit, usePaymentLimit, showSwitchAccount,
- (antiAddictionCallbackData) =>
- {
- int code = antiAddictionCallbackData.code;
- MsgExtraParams extras = antiAddictionCallbackData.extras;
- Log.Debug($"tap antiAddictionCallbackData code {code} extras title \n{extras?.title} description \n{extras?.description}");
- ViewManager.Hide<ModalStatusView>();
- // 根据 code 不同提示玩家不同信息,详见下面的说明
- if (code == 500)
- {
- ET.Log.Debug("玩家登录后判断当前玩家可以进行游戏");
- }
- else if(code == 1030)
- {
- ET.Log.Debug("未成年玩家当前无法进行游戏");
- }
- else if (code == 1095)
- {
- ET.Log.Debug("未成年允许游戏弹窗");
- }
- else if (code == 1000)
- {
- ET.Log.Debug("退出账号");
- }
- else if (code == 9002)
- {
- ET.Log.Debug("实名过程中点击了关闭实名窗");
- AntiAddictionUIKit.Startup(true, objectId);
- }
- else if (code == 1001)
- {
- ET.Log.Debug("点击切换账号按钮(v1.0.2 新增)");
- GameController.QuitToLoginView(true);
- }
- },
- (exception) =>
- {
- // 处理异常
- Log.Debug($"tap exception {exception.ToString()}");
- }
- );
- AntiAddictionUIKit.Startup(true, objectId);
- }
- public void OnEnterGame()
- {
- Log.Debug($"tap OnEnterGame");
- if (!QDManager.IsTaptap)
- {
- return;
- }
- // 开始计时
- AntiAddictionUIKit.EnterGame();
- var serverInfosComponent = GameGlobal.zoneScene.GetComponent<ServerInfosComponent>();
- var accountInfoComponent = GameGlobal.zoneScene.GetComponent<AccountInfoComponent>();
- var roleInfosComponent = GameGlobal.zoneScene.GetComponent<RoleInfosComponent>();
- var currentRole = roleInfosComponent.GetCurrentRole();
- TapDB.SetUser(accountInfoComponent.Account);
- TapDB.SetName(currentRole.Name);
- TapDB.SetLevel(RoleDataManager.lvl);
- TapDB.SetServer(serverInfosComponent.GetCurrentServerInfo().ServerName);
- Log.Debug($"tap TapDB \nSetUser {accountInfoComponent.Account} \nSetName {currentRole.Name} \nSetLevel {RoleDataManager.lvl} \nSetServer {serverInfosComponent.GetCurrentServerInfo().ServerName}");
- }
- //回到登录界面,不退出账号
- public void OnQuitToLoginView()
- {
- Log.Debug($"tap OnQuitGame");
- TapDB.ClearUser();
- AntiAddictionUIKit.LeaveGame();
- }
- public void Logout()
- {
- TDSUser.Logout();
- AntiAddictionUIKit.Logout();
- }
- }
- }
|