G2G_LockRequestHandler.cs 914 B

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using ETModel;
  3. namespace ETHotfix
  4. {
  5. [MessageHandler(AppType.Gate)]
  6. public class G2G_LockRequestHandler : AMRpcHandler<G2G_LockRequest, G2G_LockResponse>
  7. {
  8. protected override void Run(Session session, G2G_LockRequest message, Action<G2G_LockResponse> reply)
  9. {
  10. RunAsync(session, message, reply).NoAwait();
  11. }
  12. protected async ETVoid RunAsync(Session session, G2G_LockRequest message, Action<G2G_LockResponse> reply)
  13. {
  14. G2G_LockResponse response = new G2G_LockResponse();
  15. try
  16. {
  17. Unit unit = Game.Scene.GetComponent<UnitComponent>().Get(message.Id);
  18. if (unit == null)
  19. {
  20. response.Error = ErrorCode.ERR_NotFoundUnit;
  21. reply(response);
  22. return;
  23. }
  24. await unit.GetComponent<MasterComponent>().Lock(NetworkHelper.ToIPEndPoint(message.Address));
  25. reply(response);
  26. }
  27. catch (Exception e)
  28. {
  29. ReplyError(response, e, reply);
  30. }
  31. }
  32. }
  33. }