diff --git a/src/network/raknet/RakNetParser.php b/src/network/raknet/RakNetParser.php index d4fa8f900..5f98fbde9 100644 --- a/src/network/raknet/RakNetParser.php +++ b/src/network/raknet/RakNetParser.php @@ -180,25 +180,34 @@ class RakNetParser{ if($length <= 0 or $orderChannel >= 32 or ($hasSplit === true and $splitIndex >= $splitCount)){ - return false; - } - - $pid = $this->getByte(); - if(isset(ProtocolInfo::$packets[$pid])){ - $data = new ProtocolInfo::$packets[$pid]; - }else{ $data = new UnknownPacket(); - $data->packetID = $pid; + $data->reliability = $reliability; + $data->hasSplit = $hasSplit; + $data->messageIndex = $messageIndex; + $data->orderIndex = $orderIndex; + $data->orderChannel = $orderChannel; + $data->splitCount = $splitCount; + $data->splitID = $splitID; + $data->splitIndex = $splitIndex; + $data->setBuffer($this->get($length)); + }else{ + $pid = $this->getByte(); + if(isset(ProtocolInfo::$packets[$pid])){ + $data = new ProtocolInfo::$packets[$pid]; + }else{ + $data = new UnknownPacket(); + $data->packetID = $pid; + } + $data->reliability = $reliability; + $data->hasSplit = $hasSplit; + $data->messageIndex = $messageIndex; + $data->orderIndex = $orderIndex; + $data->orderChannel = $orderChannel; + $data->splitCount = $splitCount; + $data->splitID = $splitID; + $data->splitIndex = $splitIndex; + $data->setBuffer($this->get($length - 1)); } - $data->reliability = $reliability; - $data->hasSplit = $hasSplit; - $data->messageIndex = $messageIndex; - $data->orderIndex = $orderIndex; - $data->orderChannel = $orderChannel; - $data->splitCount = $splitCount; - $data->splitID = $splitID; - $data->splitIndex = $splitIndex; - $data->setBuffer($this->get($length - 1)); return $data; }