From 121777375eff91e72276ddf1ccdf86376d5bd175 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 21 Aug 2017 12:52:20 +0100 Subject: [PATCH] Rewired eating --- src/pocketmine/Player.php | 48 +++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 999c07f69..e3be7a376 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -2129,25 +2129,7 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ } $this->craftingType = 0; - $this->setGenericFlag(self::DATA_FLAG_ACTION, false); //TODO: check if this should be true - switch($packet->event){ - case EntityEventPacket::USE_ITEM: //Eating - $slot = $this->inventory->getItemInHand(); - - if($slot->canBeConsumed()){ - $ev = new PlayerItemConsumeEvent($this, $slot); - if(!$slot->canBeConsumedBy($this)){ - $ev->setCancelled(); - } - $this->server->getPluginManager()->callEvent($ev); - if(!$ev->isCancelled()){ - $slot->onConsume($this); - }else{ - $this->inventory->sendContents($this); - } - } - break; default: return false; } @@ -2553,11 +2535,33 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ } } } + }else{ + $this->inventory->sendContents($this); + } + + $this->setGenericFlag(self::DATA_FLAG_ACTION, false); + return true; + case InventoryTransactionPacket::RELEASE_ITEM_ACTION_CONSUME: + $slot = $this->inventory->getItemInHand(); + + if($slot->canBeConsumed()){ + $ev = new PlayerItemConsumeEvent($this, $slot); + if(!$slot->canBeConsumedBy($this)){ + $ev->setCancelled(); + } + $this->server->getPluginManager()->callEvent($ev); + if(!$ev->isCancelled()){ + $slot->onConsume($this); + }else{ + $this->inventory->sendContents($this); + } + + return true; }elseif($this->inventory->getItemInHand()->getId() === Item::BUCKET and $this->inventory->getItemInHand()->getDamage() === 1){ //Milk! $this->server->getPluginManager()->callEvent($ev = new PlayerItemConsumeEvent($this, $this->inventory->getItemInHand())); if($ev->isCancelled()){ $this->inventory->sendContents($this); - break; + return true; } $pk = new EntityEventPacket(); @@ -2574,11 +2578,11 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ } $this->removeAllEffects(); - }else{ - $this->inventory->sendContents($this); + + return true; } - return true; + return false; default: break; }