diff --git a/src/pocketmine/block/Leaves.php b/src/pocketmine/block/Leaves.php index f5e5267f17a..8bf71309e41 100644 --- a/src/pocketmine/block/Leaves.php +++ b/src/pocketmine/block/Leaves.php @@ -174,21 +174,26 @@ public function getVariantBitmask() : int{ } public function getDrops(Item $item) : array{ - $drops = []; - - $variantMeta = $this->getVariant(); - if($item->isShears()){ - $drops[] = ItemFactory::get($this->getItemId(), $variantMeta, 1); - }else{ - if(mt_rand(1, 20) === 1){ //Saplings - $drops[] = ItemFactory::get(Item::SAPLING, $variantMeta, 1); - } - if($variantMeta === self::OAK and mt_rand(1, 200) === 1){ //Apples - $drops[] = ItemFactory::get(Item::APPLE, 0, 1); - } + return parent::getDrops($item); + } + + $drops = []; + if(mt_rand(1, 20) === 1){ //Saplings + $drops[] = $this->getSaplingItem(); + } + if($this->canDropApples() and mt_rand(1, 200) === 1){ //Apples + $drops[] = ItemFactory::get(Item::APPLE, 0, 1); } return $drops; } + + public function getSaplingItem() : Item{ + return ItemFactory::get(Item::SAPLING, $this->getVariant()); + } + + public function canDropApples() : bool{ + return $this->meta === self::OAK; + } } \ No newline at end of file diff --git a/src/pocketmine/block/Leaves2.php b/src/pocketmine/block/Leaves2.php index cd929aa7abc..791a7485ef1 100644 --- a/src/pocketmine/block/Leaves2.php +++ b/src/pocketmine/block/Leaves2.php @@ -39,19 +39,11 @@ public function getName() : string{ return $names[$this->getVariant()] ?? "Unknown"; } - public function getDrops(Item $item) : array{ - $variantMeta = $this->getVariant(); - - if($item->isShears()){ - return [ - ItemFactory::get($this->getItemId(), $variantMeta, 1) - ]; - }elseif(mt_rand(1, 20) === 1){ //Saplings - return [ - ItemFactory::get(Item::SAPLING, $variantMeta + 4, 1) - ]; - } - - return []; + public function getSaplingItem() : Item{ + return ItemFactory::get(Item::SAPLING, $this->getVariant() + 4); + } + + public function canDropApples() : bool{ + return $this->meta === self::DARK_OAK; } } \ No newline at end of file