From 1795c8c5e3b09004b75820ffd5170e1534b4ff1c Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Mon, 25 Aug 2014 16:59:04 +0200 Subject: [PATCH] Fixed Chests/Furnaces not dropping contents when broken --- src/pocketmine/level/Level.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index dabf3476d..52b70c9b2 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -38,6 +38,7 @@ use pocketmine\event\level\LevelUnloadEvent; use pocketmine\event\level\SpawnChangeEvent; use pocketmine\event\LevelTimings; use pocketmine\event\player\PlayerInteractEvent; +use pocketmine\inventory\InventoryHolder; use pocketmine\item\Item; use pocketmine\level\format\Chunk; use pocketmine\level\format\FullChunk; @@ -65,6 +66,7 @@ use pocketmine\Player; use pocketmine\plugin\Plugin; use pocketmine\scheduler\AsyncTask; use pocketmine\Server; +use pocketmine\tile\Chest; use pocketmine\tile\Sign; use pocketmine\tile\Tile; use pocketmine\utils\Cache; @@ -876,6 +878,16 @@ class Level implements ChunkManager, Metadatable{ $target->onBreak($item); $tile = $this->getTile($target); if($tile instanceof Tile){ + if($tile instanceof InventoryHolder){ + if($tile instanceof Chest){ + $tile->unpair(); + } + + foreach($tile->getInventory()->getContents() as $item){ + $this->dropItem($target, $item); + } + } + $tile->close(); }