A2C_DisconnectHandler.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using GFGGame;
  2. namespace ET
  3. {
  4. public class A2C_DisconnectHandler : AMHandler<A2C_Disconnect>
  5. {
  6. protected override async ETTask Run(Session session, A2C_Disconnect message)
  7. {
  8. session?.GetComponent<DisConnectedCompnent>()?.CancelAlert();
  9. session.Dispose();
  10. switch (message.Error)
  11. {
  12. case ErrorCode.ERR_loginTimeOut:
  13. AlertSystem.Show("登录超时,请重新登录!")
  14. .SetLeftButton(true, "返回登录", (obj) =>
  15. {
  16. GameController.QuitToLoginView(false);
  17. });
  18. break;
  19. case ErrorCode.ERR_loginByOther:
  20. AlertSystem.Show("账号已在其他地方登录!")
  21. .SetLeftButton(true, "返回登录", (obj) =>
  22. {
  23. GameController.QuitToLoginView(true);
  24. });
  25. break;
  26. case ErrorCode.Err_ServerMaintain:
  27. Alert.Show("服务器维护中!")
  28. .SetLeftButton(true, "返回登录", (obj) =>
  29. {
  30. GameController.QuitToLoginView(true);
  31. });
  32. break;
  33. default:
  34. if (string.IsNullOrEmpty(message.Message))
  35. {
  36. AlertSystem.Show(message.Message)
  37. .SetLeftButton(true, "返回登录", (obj) =>
  38. {
  39. GameController.QuitToLoginView(true);
  40. });
  41. }
  42. else
  43. {
  44. AlertSystem.Show("您已被迫下线!");
  45. }
  46. break;
  47. }
  48. await ETTask.CompletedTask;
  49. }
  50. }
  51. }