ObjectGetRequestHandler.cs 864 B

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using ETModel;
  3. namespace ETHotfix
  4. {
  5. [MessageHandler(AppType.Location)]
  6. public class ObjectGetRequestHandler : AMRpcHandler<ObjectGetRequest, ObjectGetResponse>
  7. {
  8. protected override void Run(Session session, ObjectGetRequest message, Action<ObjectGetResponse> reply)
  9. {
  10. RunAsync(session, message, reply).Coroutine();
  11. }
  12. private async ETVoid RunAsync(Session session, ObjectGetRequest message, Action<ObjectGetResponse> reply)
  13. {
  14. ObjectGetResponse response = new ObjectGetResponse();
  15. try
  16. {
  17. long instanceId = await Game.Scene.GetComponent<LocationComponent>().GetAsync(message.Key);
  18. if (instanceId == 0)
  19. {
  20. response.Error = ErrorCode.ERR_ActorLocationNotFound;
  21. }
  22. response.InstanceId = instanceId;
  23. reply(response);
  24. }
  25. catch (Exception e)
  26. {
  27. ReplyError(response, e, reply);
  28. }
  29. }
  30. }
  31. }