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,8 +124,10 @@ abstract class BaseInventory implements Inventory{
}
}
if($send){
$this->sendContents($this->getViewers());
}
}
protected function doSetItemEvents(int $index, Item $newItem) : ?Item{
return $newItem;

View File

@ -84,8 +84,9 @@ class DoubleChestInventory extends ChestInventory implements InventoryHolder{
/**
* @param Item[] $items
* @param bool $send
*/
public function setContents(array $items){
public function setContents(array $items, bool $send = true){
$size = $this->getSize();
if(count($items) > $size){
$items = array_slice($items, 0, $size, true);
@ -103,8 +104,10 @@ class DoubleChestInventory extends ChestInventory implements InventoryHolder{
}
}
if($send){
$this->sendContents($this->getViewers());
}
}
public function onOpen(Player $who){
parent::onOpen($who);

View File

@ -114,8 +114,9 @@ interface Inventory{
/**
* @param Item[] $items
* @param bool $send
*/
public function setContents(array $items);
public function setContents(array $items, bool $send = true);
/**
* @param Player|Player[] $target