class ResourcePacksInfoPacket extends DataPacket{ const NETWORK_ID = Info::RESOURCE_PACKS_INFO_PACKET; public $mustAccept = false; //if true, forces client to use selected resource packs /** @var ResourcePackInfoEntry[] */ public $behaviorPackEntries = []; /** @var ResourcePackInfoEntry[] */ public $resourcePackEntries = []; public function decode(){ $this->mustAccept = $this->getBool(); $behaviorPackCount = $this->getLShort(); while($behaviorPackCount-- > 0){ $id = $this->getString(); $version = $this->getString(); $size = $this->getLLong(); $this->behaviorPackEntries[] = new ResourcePackInfoEntry($id, $version, $size); } $resourcePackCount = $this->getLShort(); while($resourcePackCount-- > 0){ $id = $this->getString(); $version = $this->getString(); $size = $this->getLLong(); $this->resourcePackEntries[] = new ResourcePackInfoEntry($id, $version, $size); } } public function encode(){ $this->reset(); $this->putBool($this->mustAccept); $this->putLShort(count($this->behaviorPackEntries)); foreach($this->behaviorPackEntries as $entry){ $this->putString($entry->getPackId()); $this->putString($entry->getVersion()); $this->putLLong($entry->getPackSize()); } $this->putLShort(count($this->resourcePackEntries)); foreach($this->resourcePackEntries as $entry){ $this->putString($entry->getPackId()); $this->putString($entry->getVersion()); $this->putLLong($entry->getPackSize()); } } }