From 82cfe6ea9cc9e4aad8a1e911e658ca8892a7071f Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Fri, 31 Oct 2014 00:32:50 +0100 Subject: [PATCH] Updated NBT/DataPacket reading --- src/pocketmine/nbt/NBT.php | 12 ++---------- src/pocketmine/network/protocol/DataPacket.php | 10 ++-------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/src/pocketmine/nbt/NBT.php b/src/pocketmine/nbt/NBT.php index 3f77c81a7..56b889dc8 100644 --- a/src/pocketmine/nbt/NBT.php +++ b/src/pocketmine/nbt/NBT.php @@ -72,23 +72,15 @@ class NBT{ public $endianness; private $data; - public function get($len){ + protected function get($len){ if($len < 0){ $this->offset = strlen($this->buffer) - 1; - return ""; }elseif($len === true){ return substr($this->buffer, $this->offset); } - if($len > 16){ - return substr($this->buffer, ($this->offset += $len) - $len, $len); - } - $buffer = ""; - for(; $len > 0; --$len, ++$this->offset){ - $buffer .= $this->buffer{$this->offset}; - } - return $buffer; + return $len === 1 ? $this->buffer{$this->offset++} : substr($this->buffer, ($this->offset += $len) - $len, $len); } public function put($v){ diff --git a/src/pocketmine/network/protocol/DataPacket.php b/src/pocketmine/network/protocol/DataPacket.php index c99377a45..4ca8e4f29 100644 --- a/src/pocketmine/network/protocol/DataPacket.php +++ b/src/pocketmine/network/protocol/DataPacket.php @@ -115,20 +115,14 @@ abstract class DataPacket extends \stdClass{ } protected function get($len){ - if($len <= 0){ + if($len < 0){ $this->offset = strlen($this->buffer) - 1; - return ""; }elseif($len === true){ return substr($this->buffer, $this->offset); } - $buffer = ""; - for(; $len > 0; --$len, ++$this->offset){ - $buffer .= $this->buffer{$this->offset}; - } - - return $buffer; + return $len === 1 ? $this->buffer{$this->offset++} : substr($this->buffer, ($this->offset += $len) - $len, $len); } protected function put($str){