pocketmine\block\EnchantingTable::onActivate PHP Метод

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

public onActivate ( Item $item, Player $player = null )
$item pocketmine\item\Item
$player pocketmine\Player
    public function onActivate(Item $item, Player $player = null)
    {
        if (!$this->getLevel()->getServer()->enchantingTableEnabled) {
            return true;
        }
        if ($player instanceof Player) {
            if ($player->isCreative() and $player->getServer()->limitedCreative) {
                return true;
            }
            $tile = $this->getLevel()->getTile($this);
            $enchantTable = null;
            if ($tile instanceof EnchantTable) {
                $enchantTable = $tile;
            } else {
                $this->getLevel()->setBlock($this, $this, true, true);
                $nbt = new CompoundTag("", [new StringTag("id", Tile::ENCHANT_TABLE), new IntTag("x", $this->x), new IntTag("y", $this->y), new IntTag("z", $this->z)]);
                if ($item->hasCustomName()) {
                    $nbt->CustomName = new StringTag("CustomName", $item->getCustomName());
                }
                if ($item->hasCustomBlockData()) {
                    foreach ($item->getCustomBlockData() as $key => $v) {
                        $nbt->{$key} = $v;
                    }
                }
                /** @var EnchantTable $enchantTable */
                $enchantTable = Tile::createTile(Tile::ENCHANT_TABLE, $this->getLevel()->getChunk($this->x >> 4, $this->z >> 4), $nbt);
            }
            $player->addWindow(new EnchantInventory($this));
            $player->craftingType = Player::CRAFTING_ENCHANT;
        }
        return true;
    }