getDrops() public method

Returns an array of Item objects to be dropped
public getDrops ( Item $item ) : array
$item pocketmine\item\Item
return array
 /**
  * @param CommandSender $sender
  * @param Block $block
  */
 public function sendBlockInfo(CommandSender $sender, Block $block)
 {
     $sender->sendMessage("Name: " . $block->getName());
     $sender->sendMessage("XYZ: " . $block->getFloorX() . ":" . $block->getFloorY() . ":" . $block->getFloorZ());
     $sender->sendMessage("Level: " . $block->getLevel()->getName());
     $sender->sendMessage("Block-id: " . $block->getId() . ":" . $block->getDamage());
     $sender->sendMessage("Hardness: " . $block->getHardness());
     $sender->sendMessage("Resistance: " . $block->getResistance());
     $sender->sendMessage("Tool-type: " . $block->getToolType());
     $sender->sendMessage("Friction: " . $block->getFrictionFactor());
     $sender->sendMessage("Light-level: " . $block->getLightLevel());
     //$sender->sendMessage("Is-placeable: ".($block->canBePlaced() ? TextFormat::GREEN."yes" : TextFormat::RED."no"));
     $sender->sendMessage("Is-replaceable: " . ($block->canBeReplaced() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-transparent: " . ($block->isTransparent() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-solid: " . ($block->isSolid() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     //$sender->sendMessage("Is-flowable: ".($block->canBeFlowedInto() ? TextFormat::GREEN."yes" : TextFormat::RED."no"));
     //$sender->sendMessage("Is-activateable: ".($block->canBeActivated() ? TextFormat::GREEN."yes" : TextFormat::RED."no"));
     $sender->sendMessage("Is-passable: " . ($block->canPassThrough() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $dropCount = 0;
     $dropNames = "";
     foreach ($block->getDrops() as $drop) {
         $dropNames .= $drop->getName() . ", ";
         $dropCount++;
     }
     $sender->sendMessage("Drops (" . $dropCount . "): " . substr($dropNames, 0, -2));
 }
Exemplo n.º 2
0
 public function __construct(Player $player, Block $block, Item $item, $instaBreak = \false)
 {
     $this->block = $block;
     $this->item = $item;
     $this->player = $player;
     $this->instaBreak = (bool) $instaBreak;
     $drops = $player->isSurvival() ? $block->getDrops($item) : [];
     foreach ($drops as $i) {
         $this->blockDrops[] = Item::get($i[0], $i[1], $i[2]);
     }
 }
 public function __construct(Player $player, Block $block, Item $item, int $xpAmount = 0, bool $instaBreak = false, bool $speed = false)
 {
     $this->block = $block;
     $this->item = $item;
     $this->player = $player;
     $this->instaBreak = (bool) $instaBreak;
     $this->xpAmount = (int) $xpAmount;
     $this->blocked = (bool) $speed;
     $drops = $player->isSurvival() ? $block->getDrops($item) : [];
     foreach ($drops as $i) {
         $this->blockDrops[] = Item::get($i[0], $i[1], $i[2]);
     }
 }
Exemplo n.º 4
0
 public function treeDetect(Block $block, Player $player, $isdrop = true)
 {
     if ($block->getId() == Block::LOG or $block->getId() == Block::LEAVE) {
         $drops = $block->getDrops($player->getInventory()->getItemInHand());
         if ($isdrop == true) {
             foreach ($drops as $drop) {
                 if ($drop[2] > 0) {
                     $player->getInventory()->addItem(Item::get(...$drop));
                 }
             }
         }
         $block->getLevel()->setBlock($block, new Air(), false, false);
     }
     $id = $block->getLevel()->getBlockIdAt($block->x, $block->y - 1, $block->z);
     if ($id == Block::LOG or $id == Block::LEAVE) {
         $this->treeDetect($block->getLevel()->getBlock($block->add(0, -1, 0)), $player);
     }
     $id = $block->getLevel()->getBlockIdAt($block->x, $block->y + 1, $block->z);
     if ($id == Block::LOG or $id == Block::LEAVE) {
         $this->treeDetect($block->getLevel()->getBlock($block->add(0, 1, 0)), $player);
     }
     $id = $block->getLevel()->getBlockIdAt($block->x, $block->y, $block->z - 1);
     if ($id == Block::LOG or $id == Block::LEAVE) {
         $this->treeDetect($block->getLevel()->getBlock($block->add(0, 0, -1)), $player);
     }
     $id = $block->getLevel()->getBlockIdAt($block->x, $block->y, $block->z + 1);
     if ($id == Block::LOG or $id == Block::LEAVE) {
         $this->treeDetect($block->getLevel()->getBlock($block->add(0, 0, 1)), $player);
     }
     $id = $block->getLevel()->getBlockIdAt($block->x - 1, $block->y, $block->z);
     if ($id == Block::LOG or $id == Block::LEAVE) {
         $this->treeDetect($block->getLevel()->getBlock($block->add(-1, 0, 0)), $player);
     }
     $id = $block->getLevel()->getBlockIdAt($block->x + 1, $block->y, $block->z);
     if ($id == Block::LOG or $id == Block::LEAVE) {
         $this->treeDetect($block->getLevel()->getBlock($block->add(1, 0, 0)), $player);
     }
 }