using System; namespace ET.Server { [MessageHandler(SceneType.Gate)] public class C2G_LoginGateHandler : AMRpcHandler { protected override async ETTask Run(Session session, C2G_LoginGate request, G2C_LoginGate response, Action reply) { Scene scene = session.DomainScene(); string account = scene.GetComponent().Get(request.Key); if (account == null) { response.Error = ErrorCore.ERR_ConnectGateKeyError; response.Message = "Gate key验证失败!"; reply(); return; } session.RemoveComponent(); PlayerComponent playerComponent = scene.GetComponent(); Player player = playerComponent.AddChild(account); playerComponent.Add(player); session.AddComponent().PlayerId = player.Id; session.AddComponent(MailboxType.GateSession); response.PlayerId = player.Id; reply(); await ETTask.CompletedTask; } } }