meta = $meta; } public function getHardness() : float{ return 2.5; } public function getName() : string{ return "Crafting Table"; } public function getToolType() : int{ return BlockToolType::TYPE_AXE; } public function onActivate(Item $item, Player $player = null) : bool{ if($player instanceof Player){ $player->setCraftingGrid(new CraftingGrid($player, CraftingGrid::SIZE_BIG)); if(!array_key_exists($windowId = Player::HARDCODED_CRAFTING_GRID_WINDOW_ID, $player->openHardcodedWindows)){ //TODO: HACK! crafting grid doesn't fit very well into the current PM container system, so this hack allows //it to carry on working approximately the same way as it did in 1.14 $pk = new ContainerOpenPacket(); $pk->windowId = $windowId; $pk->type = WindowTypes::WORKBENCH; $pk->x = $this->getFloorX(); $pk->y = $this->getFloorY(); $pk->z = $this->getFloorZ(); $player->sendDataPacket($pk); $player->openHardcodedWindows[$windowId] = true; } } return true; } public function getFuelTime() : int{ return 300; } }