public function write(NBT $nbt, bool $network = false)
{
if (!isset($this->tagType)) {
$id = null;
foreach ($this as $tag) {
if ($tag instanceof Tag) {
if (!isset($id)) {
$id = $tag->getType();
} elseif ($id !== $tag->getType()) {
return false;
}
}
}
$this->tagType = $id;
}
$nbt->putByte($this->tagType);
/** @var Tag[] $tags */
$tags = [];
foreach ($this as $tag) {
if ($tag instanceof Tag) {
$tags[] = $tag;
}
}
$nbt->putInt(count($tags), $network);
foreach ($tags as $tag) {
$tag->write($nbt, $network);
}
}