diff --git a/src/entity/object/ItemEntity.php b/src/entity/object/ItemEntity.php index bd06c647a..5ca0b93c5 100644 --- a/src/entity/object/ItemEntity.php +++ b/src/entity/object/ItemEntity.php @@ -226,10 +226,11 @@ class ItemEntity extends Entity{ } $item = $this->getItem(); - $playerInventory = $player->getInventory(); - if(!$playerInventory->canAddItem($item)){ - $playerInventory = null; - } + $playerInventory = match(true){ + $player->getOffHandInventory()->getItem(0)->canStackWith($item) => $player->getOffHandInventory(), + $player->getInventory()->canAddItem($item) => $player->getInventory(), + default => null + }; $ev = new EntityItemPickupEvent($player, $this, $item, $playerInventory); if($player->hasFiniteResources() and $playerInventory === null){ diff --git a/src/entity/projectile/Arrow.php b/src/entity/projectile/Arrow.php index 8ae2b57e2..eafaadb96 100644 --- a/src/entity/projectile/Arrow.php +++ b/src/entity/projectile/Arrow.php @@ -174,10 +174,11 @@ class Arrow extends Projectile{ } $item = VanillaItems::ARROW(); - $playerInventory = $player->getInventory(); - if(!$playerInventory->canAddItem($item)){ - $playerInventory = null; - } + $playerInventory = match(true){ + $player->getOffHandInventory()->getItem(0)->canStackWith($item) => $player->getOffHandInventory(), + $player->getInventory()->canAddItem($item) => $player->getInventory(), + default => null + }; $ev = new EntityItemPickupEvent($player, $this, $item, $playerInventory); if($player->hasFiniteResources() and $playerInventory === null){