pocketmine\metadata\MetadataStore::setMetadata PHP Метод

setMetadata() публичный Метод

Adds a metadata value to an object.
public setMetadata ( mixed $subject, string $metadataKey, MetadataValue $newMetadataValue )
$subject mixed
$metadataKey string
$newMetadataValue MetadataValue
    public function setMetadata($subject, $metadataKey, MetadataValue $newMetadataValue)
    {
        $owningPlugin = $newMetadataValue->getOwningPlugin();
        if ($owningPlugin === null) {
            throw new PluginException("Plugin cannot be null");
        }
        $key = $this->disambiguate($subject, $metadataKey);
        if (!isset($this->metadataMap[$key])) {
            //$entry = new \WeakMap();
            $this->metadataMap[$key] = new \SplObjectStorage();
            //$entry;
        } else {
            $entry = $this->metadataMap[$key];
        }
        $entry[$owningPlugin] = $newMetadataValue;
    }

Usage Example

Пример #1
0
 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());
     }
 }