From a669797ccb4b73b8d993f562dfd1986fa27db334 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Tue, 27 May 2014 12:12:45 +0200 Subject: [PATCH] Fixed breaking Spawnable tiles and cancelling it --- src/pocketmine/Player.php | 4 ++++ src/pocketmine/inventory/SimpleTransactionGroup.php | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 6320bdb37..6a66cc5de 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -1737,6 +1737,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ break; } $target = $this->getLevel()->getBlock($vector); + $tile = $this->getLevel()->getTile($vector); $pk = new UpdateBlockPacket; $pk->x = $target->x; $pk->y = $target->y; @@ -1744,6 +1745,9 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ $pk->block = $target->getID(); $pk->meta = $target->getDamage(); $this->directDataPacket($pk); + if($tile instanceof Spawnable){ + $tile->spawnTo($this); + } break; case ProtocolInfo::PLAYER_ARMOR_EQUIPMENT_PACKET: if($this->spawned === false or $this->blocked === true){ diff --git a/src/pocketmine/inventory/SimpleTransactionGroup.php b/src/pocketmine/inventory/SimpleTransactionGroup.php index 8b6c3aad7..9a89dea08 100644 --- a/src/pocketmine/inventory/SimpleTransactionGroup.php +++ b/src/pocketmine/inventory/SimpleTransactionGroup.php @@ -101,6 +101,9 @@ class SimpleTransactionGroup implements TransactionGroup{ Server::getInstance()->getPluginManager()->callEvent($ev = new InventoryTransactionEvent($this)); if($ev->isCancelled()){ + foreach($this->inventories as $inventory){ + $inventory->sendContents($inventory->getViewers()); + } return false; }