public function setMetadata($block, $metadataKey, MetadataValue $newMetadatavalue)
{
if (!$block instanceof Block) {
throw new \InvalidArgumentException("Object must be a Block");
}
if ($block->getLevel() === $this->owningLevel) {
parent::setMetadata($block, $metadataKey, $newMetadatavalue);
} else {
throw new \InvalidStateException("Block does not belong to world " . $this->owningLevel->getName());
}
}