If player drop item i added item that he drop, but how i check slot number in inventory where item was before dropping and then add to the same slot my code add item but not to the slot where item was before dropping PHP: public function onDrop(PlayerDropItemEvent $e){ if($e->getPlayer()->getLevel()->getFolderName() == "Hub"){ if(!$e->getPlayer()->isOp()){ $e->getPlayer()->getInventory()->addItem($e->getItem()); } }}
PHP: /** @var Player $player *//** @var int $slot */$slot = $player->getInventory()->getHeldItemSlot();
Okay, you are trying to make a script that won't allow players to drop items in the hub world unless they're OP right? use this: PHP: public function onDrop(PlayerDropItemEvent $e){ if($e->getPlayer()->getLevel()->getFolderName() == "Hub"){ if(!$e->getPlayer()->isOp()){ $e->setCancelled(); } }}
I tried PHP: public function onDrop(PlayerDropItemEvent $e){ if($e->getPlayer()->getLevel()->getFolderName() == "Hub"){ if(!$e->getPlayer()->isOp()){ $slot = $e->getPlayer()->getInventory()->getHeldItemSlot(); $e->getPlayer()->getInventory()->setItem($slot, $e->getItem()); $e->setCancelled(); } }} but it already set to the following empty slot Am I doing anything bad?
Thank you, but it add item to the following empty slot in player inventory and I want to add it to slot from which player dropped it
Yes im using pocketmine not forks Code PHP: public function onDrop(PlayerDropItemEvent $e){ if($e->getPlayer()->getLevel()->getFolderName() == "Hub"){ if(!$e->getPlayer()->isOp()){ $slot = $e->getPlayer()->getInventory()->getHeldItemSlot(); $e->getPlayer()->getInventory()->setItem($slot, $e->getItem()); $e->setCancelled(); } }}
"Just $event->setCancelled() alone would do that" PHP: public function onDrop(PlayerDropItemEvent $e){ if($e->getPlayer()->getLevel()->getFolderName() == "Hub"){ if(!$e->getPlayer()->isOp()){ $e->setCancelled(); } }}