public void Switch(SBSession session, byte[] recv) { //we do not need to handle GOA query because it is handled by game server switch ((SBClientRequestType)recv[2]) { case SBClientRequestType.ServerListRequest: UpdateOptionSwitcher.Switch(session, recv); break; case SBClientRequestType.ServerInfoRequest: new ServerInfoHandler(session, recv).Handle(); break; case SBClientRequestType.PlayerSearchRequest: break; case SBClientRequestType.MapLoopRequest: break; case SBClientRequestType.SendMessageRequest: //TODO //Cryptorx's game use this command break; case SBClientRequestType.NatNegCookieRequest: new NatNegCookieHandler(session, recv).Handle(); break; default: LogWriter.UnknownDataRecieved(recv); break; } }
public void Switch(SBSession session, byte[] recv) { if (recv.Take(6).SequenceEqual(NatNegotiation.Entity.Structure.Packet.BasePacket.MagicData)) { new NatNegCookieHandler(session, recv).Handle(); return; } //we do not need to handle GOA query because it is handled by game server switch ((SBClientRequestType)recv[2]) { case SBClientRequestType.ServerListRequest: UpdateOptionSwitcher.Switch(session, recv); break; case SBClientRequestType.ServerInfoRequest: new ServerInfoHandler(session, recv).Handle(); break; case SBClientRequestType.PlayerSearchRequest: break; case SBClientRequestType.MapLoopRequest: break; case SBClientRequestType.SendMessageRequest: //TODO //Cryptorx's game use this command new SendMessageRequestHandler(session, recv).Handle(); break; default: LogWriter.UnknownDataRecieved(recv); break; } }