mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-06 11:57:10 +00:00
Check to see if the player can start using the Releasable item. (#4532)
This commit is contained in:
parent
34ea199fb0
commit
ede4157814
@ -123,4 +123,8 @@ class Bow extends Tool implements Releasable{
|
|||||||
|
|
||||||
return ItemUseResult::SUCCESS();
|
return ItemUseResult::SUCCESS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function canStartUsingItem(Player $player) : bool{
|
||||||
|
return !$player->hasFiniteResources() || $player->getOffHandInventory()->contains($arrow = VanillaItems::ARROW()) || $player->getInventory()->contains($arrow);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ declare(strict_types=1);
|
|||||||
namespace pocketmine\item;
|
namespace pocketmine\item;
|
||||||
|
|
||||||
use pocketmine\entity\Living;
|
use pocketmine\entity\Living;
|
||||||
|
use pocketmine\player\Player;
|
||||||
|
|
||||||
abstract class Food extends Item implements FoodSourceItem{
|
abstract class Food extends Item implements FoodSourceItem{
|
||||||
public function requiresHunger() : bool{
|
public function requiresHunger() : bool{
|
||||||
@ -41,4 +42,8 @@ abstract class Food extends Item implements FoodSourceItem{
|
|||||||
public function onConsume(Living $consumer) : void{
|
public function onConsume(Living $consumer) : void{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function canStartUsingItem(Player $player) : bool{
|
||||||
|
return !$this->requiresHunger() || $player->getHungerManager()->isHungry();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ declare(strict_types=1);
|
|||||||
namespace pocketmine\item;
|
namespace pocketmine\item;
|
||||||
|
|
||||||
use pocketmine\entity\Living;
|
use pocketmine\entity\Living;
|
||||||
|
use pocketmine\player\Player;
|
||||||
|
|
||||||
class MilkBucket extends Item implements ConsumableItem{
|
class MilkBucket extends Item implements ConsumableItem{
|
||||||
|
|
||||||
@ -42,4 +43,8 @@ class MilkBucket extends Item implements ConsumableItem{
|
|||||||
public function onConsume(Living $consumer) : void{
|
public function onConsume(Living $consumer) : void{
|
||||||
$consumer->getEffects()->clear();
|
$consumer->getEffects()->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function canStartUsingItem(Player $player) : bool{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ declare(strict_types=1);
|
|||||||
namespace pocketmine\item;
|
namespace pocketmine\item;
|
||||||
|
|
||||||
use pocketmine\entity\Living;
|
use pocketmine\entity\Living;
|
||||||
|
use pocketmine\player\Player;
|
||||||
|
|
||||||
class Potion extends Item implements ConsumableItem{
|
class Potion extends Item implements ConsumableItem{
|
||||||
|
|
||||||
@ -52,4 +53,8 @@ class Potion extends Item implements ConsumableItem{
|
|||||||
public function getResidue() : Item{
|
public function getResidue() : Item{
|
||||||
return VanillaItems::GLASS_BOTTLE();
|
return VanillaItems::GLASS_BOTTLE();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function canStartUsingItem(Player $player) : bool{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,9 +23,13 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace pocketmine\item;
|
namespace pocketmine\item;
|
||||||
|
|
||||||
|
use pocketmine\player\Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface implemented by objects that can be used.
|
* Interface implemented by objects that can be used.
|
||||||
*/
|
*/
|
||||||
interface Releasable{
|
interface Releasable{
|
||||||
|
|
||||||
|
public function canStartUsingItem(Player $player) : bool;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1374,7 +1374,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
|
|||||||
$this->inventory->setItemInHand($item);
|
$this->inventory->setItemInHand($item);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->setUsingItem($item instanceof Releasable);
|
$this->setUsingItem($item instanceof Releasable && $item->canStartUsingItem($this));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user