mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-07 02:21:46 +00:00
Fixed #2126 Items drop twice from tile entities
This commit is contained in:
parent
16384c2b20
commit
1dfb17b932
@ -61,7 +61,7 @@ class BurningFurnace extends Solid{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onBreak(Item $item){
|
public function onBreak(Item $item){
|
||||||
$this->getLevel()->setBlock($this, new Air(), true, true, true);
|
$this->getLevel()->setBlock($this, new Air(), true, true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -116,15 +116,6 @@ class BurningFurnace extends Solid{
|
|||||||
if($item->isPickaxe() >= 1){
|
if($item->isPickaxe() >= 1){
|
||||||
$drops[] = [Item::FURNACE, 0, 1];
|
$drops[] = [Item::FURNACE, 0, 1];
|
||||||
}
|
}
|
||||||
$t = $this->getLevel()->getTile($this);
|
|
||||||
if($t instanceof Furnace){
|
|
||||||
for($s = 0; $s < $t->getInventory()->getSize(); ++$s){
|
|
||||||
$slot = $t->getInventory()->getItem($s);
|
|
||||||
if($slot->getID() > Item::AIR and $slot->getCount() > 0){
|
|
||||||
$drops[] = [$slot->getID(), $slot->getDamage(), $slot->getCount()];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $drops;
|
return $drops;
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,7 @@ class Chest extends Transparent{
|
|||||||
if($t instanceof TileChest){
|
if($t instanceof TileChest){
|
||||||
$t->unpair();
|
$t->unpair();
|
||||||
}
|
}
|
||||||
$this->getLevel()->setBlock($this, new Air(), true, true, true);
|
$this->getLevel()->setBlock($this, new Air(), true, true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -143,19 +143,8 @@ class Chest extends Transparent{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getDrops(Item $item){
|
public function getDrops(Item $item){
|
||||||
$drops = [
|
return [
|
||||||
[$this->id, 0, 1],
|
[$this->id, 0, 1],
|
||||||
];
|
];
|
||||||
$t = $this->getLevel()->getTile($this);
|
|
||||||
if($t instanceof TileChest){
|
|
||||||
for($s = 0; $s < $t->getRealInventory()->getSize(); ++$s){
|
|
||||||
$slot = $t->getRealInventory()->getItem($s);
|
|
||||||
if($slot->getID() > Item::AIR and $slot->getCount() > 0){
|
|
||||||
$drops[] = [$slot->getID(), $slot->getDamage(), $slot->getCount()];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $drops;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -200,6 +200,9 @@ class McRegion extends BaseLevelProvider{
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach($chunk->getEntities() as $entity){
|
foreach($chunk->getEntities() as $entity){
|
||||||
|
if($entity instanceof Player){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$entity->close();
|
$entity->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user