C2G_LoginGateHandler.cs 955 B

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. namespace ET
  3. {
  4. [MessageHandler]
  5. public class C2G_LoginGateHandler : AMRpcHandler<C2G_LoginGate, G2C_LoginGate>
  6. {
  7. protected override async ETTask Run(Session session, C2G_LoginGate request, G2C_LoginGate response, Action reply)
  8. {
  9. Scene scene = session.DomainScene();
  10. string account = scene.GetComponent<GateSessionKeyComponent>().Get(request.Key);
  11. if (account == null)
  12. {
  13. response.Error = ErrorCode.ERR_ConnectGateKeyError;
  14. response.Message = "Gate key验证失败!";
  15. reply();
  16. return;
  17. }
  18. PlayerComponent playerComponent = scene.GetComponent<PlayerComponent>();
  19. Player player = playerComponent.AddChild<Player, string>(account);
  20. playerComponent.Add(player);
  21. session.AddComponent<SessionPlayerComponent>().Player = player;
  22. session.AddComponent<MailBoxComponent, MailboxType>(MailboxType.GateSession);
  23. response.PlayerId = player.Id;
  24. reply();
  25. await ETTask.CompletedTask;
  26. }
  27. }
  28. }