protected void MsgAboutToPlay(BinaryReader reader) { var packet = new AboutToPlayPacket(); packet.Unserialize(reader); IPacket s; if (Server.ValidateServer(this, packet.ServerId)) { s = new PlayOkPacket { OneTimeKey = OneTimeKey, ServerId = packet.ServerId, UserId = 0 }; } else { s = new PlayFailPacket { ResultCode = 1 }; _disconnect = true; } var data = CreatePacket(s); Socket.BeginSend(data, 0, data.Length, EndSend, true); }
private void MsgAboutToPlay(AboutToPlayPacket packet) { if (SessionId1 != packet.SessionId1 || SessionId2 != packet.SessionId2) { Logger.WriteLog(LogType.Security, $"Account ({AccountEntry.Username}, {AccountEntry.Id}) has sent an AboutToPlay packet with invalid session data!"); return; } Server.RequestRedirection(this, packet.ServerId); }