From bcc0f1e733ab26479912a9c2df15a456055755bc Mon Sep 17 00:00:00 2001 From: Covered123 <58715544+JavierLeon9966@users.noreply.github.com> Date: Mon, 3 Jan 2022 16:11:32 -0300 Subject: [PATCH] Fixed desynchronization of hunger when cancelling food-related events (#4691) --- src/network/mcpe/handler/InGamePacketHandler.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/network/mcpe/handler/InGamePacketHandler.php b/src/network/mcpe/handler/InGamePacketHandler.php index e4553c49b..b2fd157ad 100644 --- a/src/network/mcpe/handler/InGamePacketHandler.php +++ b/src/network/mcpe/handler/InGamePacketHandler.php @@ -27,6 +27,7 @@ use pocketmine\block\BaseSign; use pocketmine\block\ItemFrame; use pocketmine\block\utils\SignText; use pocketmine\entity\animation\ConsumingItemAnimation; +use pocketmine\entity\Attribute; use pocketmine\entity\InvalidSkinException; use pocketmine\event\player\PlayerEditBookEvent; use pocketmine\inventory\transaction\action\InventoryAction; @@ -371,6 +372,8 @@ class InGamePacketHandler extends PacketHandler{ case UseItemTransactionData::ACTION_CLICK_AIR: if($this->player->isUsingItem()){ if(!$this->player->consumeHeldItem()){ + $hungerAttr = $this->player->getAttributeMap()->get(Attribute::HUNGER) ?? throw new AssumptionFailedError(); + $hungerAttr->markSynchronized(false); $this->inventoryManager->syncSlot($this->player->getInventory(), $this->player->getInventory()->getHeldItemIndex()); } return true;