diff --git a/src/pocketmine/inventory/BaseInventory.php b/src/pocketmine/inventory/BaseInventory.php index ea1e6f9fc..aaa5ebb6a 100644 --- a/src/pocketmine/inventory/BaseInventory.php +++ b/src/pocketmine/inventory/BaseInventory.php @@ -351,12 +351,14 @@ abstract class BaseInventory implements Inventory{ return $this->setItem($index, ItemFactory::get(Item::AIR, 0, 0), $send); } - public function clearAll() : void{ + public function clearAll(bool $send = true) : void{ for($i = 0, $size = $this->getSize(); $i < $size; ++$i){ $this->clear($i, false); } - $this->sendContents($this->getViewers()); + if($send){ + $this->sendContents($this->getViewers()); + } } /** diff --git a/src/pocketmine/inventory/Inventory.php b/src/pocketmine/inventory/Inventory.php index b3b06e158..dfa05aa0c 100644 --- a/src/pocketmine/inventory/Inventory.php +++ b/src/pocketmine/inventory/Inventory.php @@ -188,8 +188,10 @@ interface Inventory{ /** * Clears all the slots + * + * @param bool $send */ - public function clearAll() : void; + public function clearAll(bool $send = true) : void; /** * Gets all the Players viewing the inventory diff --git a/src/pocketmine/inventory/PlayerInventory.php b/src/pocketmine/inventory/PlayerInventory.php index 92b35f479..b6e8b2521 100644 --- a/src/pocketmine/inventory/PlayerInventory.php +++ b/src/pocketmine/inventory/PlayerInventory.php @@ -282,14 +282,16 @@ class PlayerInventory extends EntityInventory{ return parent::doSetItemEvents($index, $newItem); } - public function clearAll() : void{ - parent::clearAll(); + public function clearAll(bool $send = true) : void{ + parent::clearAll($send); for($i = $this->getSize(), $m = $i + 4; $i < $m; ++$i){ $this->clear($i, false); } - $this->sendArmorContents($this->getViewers()); + if($send){ + $this->sendArmorContents($this->getViewers()); + } } /**