buffer, $this->offset); } public function putInt($v){ $this->put(Binary::writeVarInt($v)); } public function getLong() : int{ return Binary::readVarLong($this->buffer, $this->offset); } public function putLong($v){ $this->put(Binary::writeVarLong($v)); } public function getString(){ return $this->get(Binary::readUnsignedVarInt($this->buffer, $this->offset)); } public function putString($v){ $this->put(Binary::writeUnsignedVarInt(strlen($v)) . $v); } public function getIntArray() : array{ $len = $this->getInt(); //varint $ret = []; for($i = 0; $i < $len; ++$i){ $ret[] = $this->getInt(); //varint } return $ret; } public function putIntArray(array $array) : void{ $this->putInt(count($array)); //varint foreach($array as $v){ $this->putInt($v); //varint } } }