namespace ET.Server { [MessageHandler(SceneType.RoomRoot)] public class C2Room_CheckHashHandler: MessageHandler { protected override async ETTask Run(Scene root, C2Room_CheckHash message) { Room room = root.GetComponent(); long hash = room.FrameBuffer.GetHash(message.Frame); if (message.Hash != hash) { byte[] bytes = room.FrameBuffer.Snapshot(message.Frame).ToArray(); Room2C_CheckHashFail room2CCheckHashFail = Room2C_CheckHashFail.Create(); room2CCheckHashFail.Frame = message.Frame; room2CCheckHashFail.LSWorldBytes = bytes; room.Root().GetComponent().Get(LocationType.GateSession).Send(message.PlayerId, room2CCheckHashFail); } await ETTask.CompletedTask; } } }