mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-12 00:39:45 +00:00
cleanup eating clusterfuck
This commit is contained in:
parent
d2e4eb40b3
commit
73b923e3a1
@ -2504,6 +2504,27 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
||||
|
||||
return true;
|
||||
case InventoryTransactionPacket::USE_ITEM_ACTION_CLICK_AIR:
|
||||
if($this->isUsingItem()){
|
||||
$slot = $this->inventory->getItemInHand();
|
||||
if($slot instanceof Consumable){
|
||||
$ev = new PlayerItemConsumeEvent($this, $slot);
|
||||
if($this->hasItemCooldown($slot)){
|
||||
$ev->setCancelled();
|
||||
}
|
||||
$ev->call();
|
||||
if($ev->isCancelled() or !$this->consumeObject($slot)){
|
||||
$this->inventory->sendContents($this);
|
||||
return true;
|
||||
}
|
||||
$this->resetItemCooldown($slot);
|
||||
if($this->isSurvival()){
|
||||
$slot->pop();
|
||||
$this->inventory->setItemInHand($slot);
|
||||
$this->inventory->addItem($slot->getResidue());
|
||||
}
|
||||
$this->setUsingItem(false);
|
||||
}
|
||||
}
|
||||
$directionVector = $this->getDirectionVector();
|
||||
|
||||
if($this->isCreative()){
|
||||
@ -2533,13 +2554,7 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
||||
}
|
||||
}
|
||||
|
||||
if(!$this->isUsingItem()){
|
||||
$this->setUsingItem(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
$this->setUsingItem(false);
|
||||
$item->onUse($this);
|
||||
$this->setUsingItem(true);
|
||||
|
||||
return true;
|
||||
default:
|
||||
@ -2663,8 +2678,6 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
||||
}
|
||||
|
||||
return true;
|
||||
case InventoryTransactionPacket::RELEASE_ITEM_ACTION_CONSUME:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -115,28 +115,4 @@ class Bucket extends Item implements Consumable{
|
||||
public function onConsume(Living $consumer){
|
||||
$consumer->removeAllEffects();
|
||||
}
|
||||
|
||||
public function onUse(Player $player) : bool{
|
||||
if($this->canBeConsumed()){
|
||||
$slot = $player->getInventory()->getItemInHand();
|
||||
|
||||
$ev = new PlayerItemConsumeEvent($player, $slot);
|
||||
$ev->call();
|
||||
|
||||
/** @var $slot Consumable */
|
||||
if($ev->isCancelled() or !$player->consumeObject($slot)){
|
||||
$player->getInventory()->sendContents($player);
|
||||
return true;
|
||||
}
|
||||
|
||||
if($player->isSurvival()){
|
||||
$slot->pop();
|
||||
$player->getInventory()->setItemInHand($slot);
|
||||
$player->getInventory()->addItem($slot->getResidue());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -24,9 +24,6 @@ declare(strict_types=1);
|
||||
namespace pocketmine\item;
|
||||
|
||||
use pocketmine\entity\Living;
|
||||
use pocketmine\event\player\PlayerItemConsumeEvent;
|
||||
use pocketmine\math\Vector3;
|
||||
use pocketmine\Player;
|
||||
|
||||
abstract class Food extends Item implements FoodSource{
|
||||
public function requiresHunger() : bool{
|
||||
@ -44,32 +41,7 @@ abstract class Food extends Item implements FoodSource{
|
||||
return [];
|
||||
}
|
||||
|
||||
public function onUse(Player $player) : bool{
|
||||
$slot = $player->getInventory()->getItemInHand();
|
||||
|
||||
$ev = new PlayerItemConsumeEvent($player, $slot);
|
||||
$ev->call();
|
||||
|
||||
/** @var $slot Consumable */
|
||||
if($ev->isCancelled() or !$player->consumeObject($slot)){
|
||||
$player->getInventory()->sendContents($player);
|
||||
return true;
|
||||
}
|
||||
|
||||
if($player->isSurvival()){
|
||||
$slot->pop();
|
||||
$player->getInventory()->setItemInHand($slot);
|
||||
$player->getInventory()->addItem($slot->getResidue());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function onConsume(Living $consumer){
|
||||
|
||||
}
|
||||
|
||||
public function onClickAir(Player $player, Vector3 $directionVector) : bool{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -848,10 +848,6 @@ class Item implements ItemIds, \JsonSerializable{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function onUse(Player $player) : bool{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares an Item to this Item and check if they match.
|
||||
*
|
||||
|
@ -26,8 +26,6 @@ namespace pocketmine\item;
|
||||
use pocketmine\entity\Effect;
|
||||
use pocketmine\entity\EffectInstance;
|
||||
use pocketmine\entity\Living;
|
||||
use pocketmine\event\player\PlayerItemConsumeEvent;
|
||||
use pocketmine\Player;
|
||||
|
||||
class Potion extends Item implements Consumable{
|
||||
|
||||
@ -237,25 +235,4 @@ class Potion extends Item implements Consumable{
|
||||
public function getResidue(){
|
||||
return ItemFactory::get(Item::GLASS_BOTTLE);
|
||||
}
|
||||
|
||||
public function onUse(Player $player) : bool{
|
||||
$slot = $player->getInventory()->getItemInHand();
|
||||
|
||||
$ev = new PlayerItemConsumeEvent($player, $slot);
|
||||
$ev->call();
|
||||
|
||||
/** @var $slot Consumable */
|
||||
if($ev->isCancelled() or !$player->consumeObject($slot)){
|
||||
$player->getInventory()->sendContents($player);
|
||||
return true;
|
||||
}
|
||||
|
||||
if($player->isSurvival()){
|
||||
$slot->pop();
|
||||
$player->getInventory()->setItemInHand($slot);
|
||||
$player->getInventory()->addItem($slot->getResidue());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user