106 if(!($this->
getBlock() instanceof HopperBlock)){
111 $area = clone $this->
getBlock()->getBoundingBox();
112 $area->maxY =
ceil($area->maxY) + 1;
114 if(!($entity instanceof
DroppedItem) or !$entity->isAlive()){
117 if(!$entity->boundingBox->intersectsWith($area)){
121 $item = $entity->getItem();
122 if(!$item instanceof Item){
125 if($item->getCount() < 1){
130 if($this->inventory->canAddItem($item)){
131 $this->inventory->addItem($item);
137 $this->namedtag->TransferCooldown->setValue($this->namedtag->TransferCooldown->getValue() - 1);
143 if($source instanceof Tile and $source instanceof InventoryHolder){
147 if($this->inventory->canAddItem($item)){
148 $this->inventory->addItem($item);
151 if($source instanceof Hopper){
152 $source->resetCooldownTicks();
161 if($target instanceof Tile and $target instanceof InventoryHolder){
162 $inv = $target->getInventory();
163 foreach($this->inventory->getContents() as $item){
164 if($item->getId() ===
Item::AIR or $item->getCount() < 1){
167 $targetItem = clone $item;
168 $targetItem->setCount(1);
170 if($inv->canAddItem($targetItem)){
171 $inv->addItem($targetItem);
172 $this->inventory->removeItem($targetItem);
174 if($target instanceof Hopper){
175 $target->resetCooldownTicks();