private void ParseServerWorldMessage() { #if DEBUG_PROXY Trace.WriteLine("[DEBUG] Proxy [ParseServerWorldMessage]"); #endif clientOutMessage.Reset(); Array.Copy(serverInMessage.Buffer, clientOutMessage.Buffer, serverInMessage.Size); clientOutMessage.Size = serverInMessage.Size; serverInMessage.ReadPosition = 2; if (Adler.Generate(serverInMessage) != serverInMessage.ReadChecksum()) { throw new Exception("Wrong checksum."); } Xtea.Decrypt(serverInMessage, xteaKey); serverInMessage.Size = serverInMessage.ReadInternalHead() + 8; serverInMessage.ReadPosition = 8; client.ProtocolWorld.ParseServerMessage(serverInMessage); SendToClient(clientOutMessage); }