mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-12 06:25:32 +00:00
Implemented Arrow pick up
This commit is contained in:
parent
f5822c6de8
commit
61d84c73d0
@ -1170,7 +1170,30 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
|
|||||||
|
|
||||||
$hasUpdate = $this->entityBaseTick();
|
$hasUpdate = $this->entityBaseTick();
|
||||||
foreach($this->getLevel()->getNearbyEntities($this->boundingBox->grow(1, 1, 1), $this) as $entity){
|
foreach($this->getLevel()->getNearbyEntities($this->boundingBox->grow(1, 1, 1), $this) as $entity){
|
||||||
if($entity instanceof DroppedItem){
|
if($entity instanceof Arrow and $entity->onGround){
|
||||||
|
if($entity->dead !== true){
|
||||||
|
$item = Item::get(Item::ARROW, 0, 1);
|
||||||
|
if($this->isSurvival() and !$this->inventory->canAddItem($item)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->server->getPluginManager()->callEvent($ev = new InventoryPickupItemEvent($this->inventory, $item));
|
||||||
|
if($ev->isCancelled()){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$pk = new TakeItemEntityPacket;
|
||||||
|
$pk->eid = 0;
|
||||||
|
$pk->target = $entity->getID();
|
||||||
|
$this->dataPacket($pk);
|
||||||
|
$pk = new TakeItemEntityPacket;
|
||||||
|
$pk->eid = $this->getID();
|
||||||
|
$pk->target = $entity->getID();
|
||||||
|
Server::broadcastPacket($entity->getViewers(), $pk);
|
||||||
|
$this->inventory->addItem(clone $item);
|
||||||
|
$entity->kill();
|
||||||
|
}
|
||||||
|
}elseif($entity instanceof DroppedItem){
|
||||||
if($entity->dead !== true and $entity->getPickupDelay() <= 0){
|
if($entity->dead !== true and $entity->getPickupDelay() <= 0){
|
||||||
$item = $entity->getItem();
|
$item = $entity->getItem();
|
||||||
|
|
||||||
@ -1197,7 +1220,6 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
|
|||||||
$pk->eid = 0;
|
$pk->eid = 0;
|
||||||
$pk->target = $entity->getID();
|
$pk->target = $entity->getID();
|
||||||
$this->dataPacket($pk);
|
$this->dataPacket($pk);
|
||||||
|
|
||||||
$pk = new TakeItemEntityPacket;
|
$pk = new TakeItemEntityPacket;
|
||||||
$pk->eid = $this->getID();
|
$pk->eid = $this->getID();
|
||||||
$pk->target = $entity->getID();
|
$pk->target = $entity->getID();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user