using System; using Fantasy; using Fantasy.Async; using Fantasy.Network.Interface; using NB.Chat; using NB.Game; namespace NB.Common; public class G2Common_EnterRequestHandler : AddressRPC { protected override async FTask Run(Scene scene, G2Common_EnterRequest request, G2Common_EnterResponse response, Action reply) { response.RouteType = request.RouteType; switch (scene.SceneType) { case SceneType.Game: { await RunGame(scene, request, response); break; } // case SceneType.Social: // { // await RunSocial(scene, request, response); // break; // } } await FTask.CompletedTask; } private async FTask RunGame(Scene scene, G2Common_EnterRequest request, G2Common_EnterResponse response) { // 在缓存中检查该账号是否存在 var gameAccountManageComponent = scene.GetComponent(); var account = await gameAccountManageComponent.Online(request.AccountId, request.GateRouteId); if (account == null) { response.ErrorCode = ErrorCode.ErrServer; return; } response.UnitRouteId = account.RuntimeId; Log.Info($"登录到游戏服成功,id={response.UnitRouteId}"); } // private async FTask RunSocial(Scene scene, G2Common_EnterRequest request, G2Common_EnterResponse response) // { // // 在缓存中检查该账号是否存在 // var chatUnitManageComponent = scene.GetComponent(); // var account = await chatUnitManageComponent.Online(scene, request.AccountId, request.GateRouteId); // // if (account == null) // { // response.ErrorCode = ErrorCode.ErrServer; // return; // } // // response.UnitRouteId = account.RuntimeId; // Log.Info($"登录到社交服成功,id={response.UnitRouteId}"); // } // private async FTask RunMap(Scene scene, G2Common_EnterRequest request, G2Common_EnterResponse response) // { // // 在缓存中检查该账号是否存在 // var chatUnitManageComponent = scene.GetComponent(); // var account = await chatUnitManageComponent.Online(scene, request.AccountId, request.GateRouteId); // // if (account == null) // { // response.ErrorCode = ErrorCode.ErrServer; // return; // } // // response.UnitRouteId = account.RuntimeId; // Log.Info($"登录到地图服成功,id={response.UnitRouteId}"); // } }