13declare(strict_types=1);
15namespace pocketmine\network\mcpe\protocol;
26 public const NETWORK_ID = ProtocolInfo::DIMENSION_DATA_PACKET;
32 private array $definitions;
39 public static function create(array $definitions) : self{
41 $result->definitions = $definitions;
52 $this->definitions = [];
56 $dimensionData = DimensionData::read($in);
58 if(isset($this->definitions[$dimensionNameId])){
61 if($dimensionNameId !== DimensionNameIds::OVERWORLD && $dimensionNameId !== DimensionNameIds::NETHER && $dimensionNameId !== DimensionNameIds::THE_END){
64 $this->definitions[$dimensionNameId] = $dimensionData;
69 $out->putUnsignedVarInt(count($this->definitions));
71 foreach($this->definitions as $dimensionNameId => $definition){
72 $out->putString((
string) $dimensionNameId);
73 $definition->write($out);
78 return $handler->handleDimensionData($this);
static create(array $definitions)
handle(PacketHandlerInterface $handler)
decodePayload(PacketSerializer $in)
encodePayload(PacketSerializer $out)