From 1c43538238715a28f061cf9b294e293155b5b72e Mon Sep 17 00:00:00 2001 From: Mohamed Date: Fri, 11 Dec 2020 22:14:52 +0100 Subject: [PATCH] Fix that a hoe gets damage applied to it, when it's used to break a block (#3967) closes #3965 --- src/pocketmine/block/BlockToolType.php | 1 + src/pocketmine/block/Sponge.php | 4 ++++ src/pocketmine/item/Hoe.php | 13 +++++++++++++ 3 files changed, 18 insertions(+) diff --git a/src/pocketmine/block/BlockToolType.php b/src/pocketmine/block/BlockToolType.php index 17670e1c7..914e25b17 100644 --- a/src/pocketmine/block/BlockToolType.php +++ b/src/pocketmine/block/BlockToolType.php @@ -35,5 +35,6 @@ interface BlockToolType{ public const TYPE_PICKAXE = 1 << 2; public const TYPE_AXE = 1 << 3; public const TYPE_SHEARS = 1 << 4; + public const TYPE_HOE = 1 << 5; } diff --git a/src/pocketmine/block/Sponge.php b/src/pocketmine/block/Sponge.php index a7a217165..0927af584 100644 --- a/src/pocketmine/block/Sponge.php +++ b/src/pocketmine/block/Sponge.php @@ -31,6 +31,10 @@ class Sponge extends Solid{ $this->meta = $meta; } + public function getToolType() : int{ + return BlockToolType::TYPE_HOE; + } + public function getHardness() : float{ return 0.6; } diff --git a/src/pocketmine/item/Hoe.php b/src/pocketmine/item/Hoe.php index 2d3191954..4baa9b9ad 100644 --- a/src/pocketmine/item/Hoe.php +++ b/src/pocketmine/item/Hoe.php @@ -23,11 +23,24 @@ declare(strict_types=1); namespace pocketmine\item; +use pocketmine\block\Block; +use pocketmine\block\BlockToolType; use pocketmine\entity\Entity; class Hoe extends TieredTool{ + public function getBlockToolType() : int{ + return BlockToolType::TYPE_HOE; + } + public function onAttackEntity(Entity $victim) : bool{ return $this->applyDamage(1); } + + public function onDestroyBlock(Block $block) : bool{ + if($block->getHardness() > 0){ + return $this->applyDamage(1); + } + return false; + } }