public function addItem(Item $item, Player $player, Item $result)
{
if ($item->getCount() <= 1) {
$player->getInventory()->setItemInHand($result);
} else {
$item->setCount($item->getCount() - 1);
if ($player->getInventory()->canAddItem($result) === true) {
$player->getInventory()->addItem($result);
} else {
$motion = $player->getDirectionVector()->multiply(0.4);
$position = clone $player->getPosition();
$player->getLevel()->dropItem($position->add(0, 0.5, 0), $result, $motion, 40);
}
}
}