GateRecvServerMessageEvent.cs 664 B

1234567891011121314151617181920212223
  1. using System;
  2. using Model;
  3. using MongoDB.Bson;
  4. namespace Controller
  5. {
  6. [Event(EventType.GateRecvServerMessage, ServerType.Gate)]
  7. public class GateRecvServerMessageEvent : IEventSync
  8. {
  9. public void Run(Env env)
  10. {
  11. byte[] message = env.Get<byte[]>(EnvKey.Message);
  12. byte[] idBuffer = new byte[12];
  13. Array.Copy(message, 2, idBuffer, 0, 12);
  14. ObjectId unitId = new ObjectId(idBuffer);
  15. byte[] buffer = new byte[message.Length - 12];
  16. Array.Copy(message, 0, buffer, 0, 2);
  17. Array.Copy(message, 14, buffer, 2, message.Length - 14);
  18. World.Instance.GetComponent<GateNetworkComponent>().SendAsync(unitId, buffer);
  19. }
  20. }
  21. }