diff --git a/src/item/Bow.php b/src/item/Bow.php index 2dcbb5b01..2c660354e 100644 --- a/src/item/Bow.php +++ b/src/item/Bow.php @@ -34,7 +34,7 @@ use pocketmine\world\sound\BowShootSound; use function intdiv; use function min; -class Bow extends Tool{ +class Bow extends Tool implements Releasable{ public function getFuelTime() : int{ return 200; diff --git a/src/item/ConsumableItem.php b/src/item/ConsumableItem.php index 54e661877..77344de64 100644 --- a/src/item/ConsumableItem.php +++ b/src/item/ConsumableItem.php @@ -28,7 +28,7 @@ use pocketmine\entity\Consumable; /** * Interface implemented by objects that can be consumed by mobs. */ -interface ConsumableItem extends Consumable{ +interface ConsumableItem extends Consumable, Releasable{ /** * Returns the leftover that this Consumable produces when it is consumed. For Items, this is usually air, but could diff --git a/src/item/Releasable.php b/src/item/Releasable.php new file mode 100644 index 000000000..07e77cf28 --- /dev/null +++ b/src/item/Releasable.php @@ -0,0 +1,31 @@ +inventory->setItemInHand($item); } - //TODO: check if item has a release action - if it doesn't, this shouldn't be set - $this->setUsingItem(true); + $this->setUsingItem($item instanceof Releasable); return true; }