InGamePacketHandler: do not execute use-item action if already using item, fixes #3246

the useHeldItem() sets the using-item flag back to true immediately after consumeHeldItem() sets it to false, which caused this bug.
stable has the same problem, but the effects don't show due to a well timed MobEquipmentPacket (a happy accident).
This commit is contained in:
Dylan K. Taylor 2020-02-09 12:13:15 +00:00
parent 4c51f1dda3
commit ce42ca958e

View File

@ -310,8 +310,10 @@ class InGamePacketHandler extends PacketHandler{
}
return true;
case UseItemTransactionData::ACTION_CLICK_AIR:
if($this->player->isUsingItem() and !$this->player->consumeHeldItem()){
$this->session->getInvManager()->syncSlot($this->player->getInventory(), $this->player->getInventory()->getHeldItemIndex());
if($this->player->isUsingItem()){
if(!$this->player->consumeHeldItem()){
$this->session->getInvManager()->syncSlot($this->player->getInventory(), $this->player->getInventory()->getHeldItemIndex());
}
return true;
}
if(!$this->player->useHeldItem()){