don't try to send contents during inventory construction

This commit is contained in:
Dylan K. Taylor
2017-09-20 10:18:24 +01:00
parent 85b2b2ae2e
commit 4a1fc1bdf7
3 changed files with 13 additions and 6 deletions

View File

@ -59,7 +59,7 @@ abstract class BaseInventory implements Inventory{
$this->slots = new \SplFixedArray($size ?? $this->getDefaultSize());
$this->title = $title ?? $this->getName();
$this->setContents($items);
$this->setContents($items, false);
}
abstract public function getName() : string;
@ -105,8 +105,9 @@ abstract class BaseInventory implements Inventory{
/**
* @param Item[] $items
* @param bool $send
*/
public function setContents(array $items){
public function setContents(array $items, bool $send = true){
if(count($items) > $this->getSize()){
$items = array_slice($items, 0, $this->getSize(), true);
}
@ -123,7 +124,9 @@ abstract class BaseInventory implements Inventory{
}
}
$this->sendContents($this->getViewers());
if($send){
$this->sendContents($this->getViewers());
}
}
protected function doSetItemEvents(int $index, Item $newItem) : ?Item{