mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-10-16 11:58:00 +00:00
Eliminate usages of BinaryStream->setBuffer() and BinaryStream->reset()
This commit is contained in:
@@ -55,6 +55,10 @@ abstract class DataPacket implements Packet{
|
||||
return $this->buf;
|
||||
}
|
||||
|
||||
public function setSerializer(PacketSerializer $serializer) : void{
|
||||
$this->buf = $serializer;
|
||||
}
|
||||
|
||||
public function pid() : int{
|
||||
return $this::NETWORK_ID;
|
||||
}
|
||||
@@ -105,7 +109,7 @@ abstract class DataPacket implements Packet{
|
||||
abstract protected function decodePayload(PacketSerializer $in) : void;
|
||||
|
||||
final public function encode() : void{
|
||||
$this->buf->reset();
|
||||
$this->buf = new PacketSerializer();
|
||||
$this->encodeHeader($this->buf);
|
||||
$this->encodePayload($this->buf);
|
||||
}
|
||||
|
@@ -29,6 +29,8 @@ interface Packet{
|
||||
|
||||
public function getSerializer() : PacketSerializer;
|
||||
|
||||
public function setSerializer(PacketSerializer $serializer) : void;
|
||||
|
||||
public function pid() : int;
|
||||
|
||||
public function getName() : string;
|
||||
|
@@ -23,7 +23,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\network\mcpe\protocol;
|
||||
|
||||
use pocketmine\utils\Binary;
|
||||
use pocketmine\network\mcpe\protocol\serializer\PacketSerializer;
|
||||
use pocketmine\utils\BinaryDataException;
|
||||
|
||||
class PacketPool{
|
||||
@@ -199,9 +199,9 @@ class PacketPool{
|
||||
* @throws BinaryDataException
|
||||
*/
|
||||
public function getPacket(string $buffer) : Packet{
|
||||
$offset = 0;
|
||||
$pk = $this->getPacketById(Binary::readUnsignedVarInt($buffer, $offset) & DataPacket::PID_MASK);
|
||||
$pk->getSerializer()->setBuffer($buffer, $offset);
|
||||
$serializer = new PacketSerializer($buffer);
|
||||
$pk = $this->getPacketById($serializer->getUnsignedVarInt() & DataPacket::PID_MASK);
|
||||
$pk->setSerializer($serializer);
|
||||
|
||||
return $pk;
|
||||
}
|
||||
|
Reference in New Issue
Block a user