GenisysPro  for Minecraft PE/Windows 10 v1.1.x
Feature-rich server software for Minecraft PE and Windows 10 Edition
EnderChestInventory Class Reference

Public Member Functions

 __construct (Human $owner, $contents=null)
 
 getOwner ()
 
 openAt (Position $pos)
 
 getHolder ()
 
 onOpen (Player $who)
 
 onClose (Player $who)
 
- Public Member Functions inherited from ContainerInventory
 onOpen (Player $who)
 
 onClose (Player $who)
 
- Public Member Functions inherited from BaseInventory
 __construct (InventoryHolder $holder, InventoryType $type, array $items=[], $overrideSize=null, $overrideTitle=null)
 
 __destruct ()
 
 getSize ()
 
 getHotbarSize ()
 
 setSize ($size)
 
 getMaxStackSize ()
 
 getName ()
 
 getTitle ()
 
 getItem ($index)
 
 getContents ()
 
 setContents (array $items, $send=true)
 
 setItem ($index, Item $item, $send=true)
 
 contains (Item $item)
 
 slotContains ($slot, Item $item, $matchCount=false)
 
 all (Item $item)
 
 remove (Item $item, $send=true)
 
 first (Item $item)
 
 firstEmpty ()
 
 firstOccupied ()
 
 canAddItem (Item $item)
 
 clear ($index, $send=true)
 
 clearAll ($send=true)
 
 getViewers ()
 
 getHolder ()
 
 setMaxStackSize ($size)
 
 open (Player $who)
 
 close (Player $who)
 
 onOpen (Player $who)
 
 onClose (Player $who)
 
 onSlotChange ($index, $before, $send)
 
 processSlotChange (Transaction $transaction)
 
 sendContents ($target)
 
 sendSlot ($index, $target)
 
 getType ()
 
- Public Member Functions inherited from Inventory
 setItem ($index, Item $item)
 
 addItem (... $slots)
 
 removeItem (... $slots)
 
 setContents (array $items)
 
 remove (Item $item)
 
 clear ($index)
 
 clearAll ()
 

Additional Inherited Members

- Data Fields inherited from Inventory
const MAX_STACK = 64
 
- Protected Attributes inherited from BaseInventory
 $type
 
 $maxStackSize = Inventory::MAX_STACK
 
 $size
 
 $name
 
 $title
 
 $slots = []
 
 $viewers = []
 
 $holder
 

Constructor & Destructor Documentation

◆ __construct()

__construct ( Human  $owner,
  $contents = null 
)

EnderChestInventory constructor.

Parameters
Human$owner
null$contents
43  {
44  $this->owner = $owner;
45  parent::__construct(new FakeBlockMenu($this, $owner->getPosition()), InventoryType::get(InventoryType::ENDER_CHEST));
46 
47  if($contents !== null){
48  if($contents instanceof ListTag){ //Saved data to be loaded into the inventory
49  foreach($contents as $item){
50  $this->setItem($item["Slot"], Item::nbtDeserialize($item));
51  }
52  }else{
53  throw new \InvalidArgumentException("Expecting ListTag, received " . gettype($contents));
54  }
55  }
56  }

Member Function Documentation

◆ getHolder()

getHolder ( )
Returns
FakeBlockMenu

Implements Inventory.

80  {
81  return $this->holder;
82  }

◆ getOwner()

getOwner ( )
Returns
Human|Player
61  {
62  return $this->owner;
63  }

◆ onClose()

onClose ( Player  $who)
Parameters
Player$who

Implements Inventory.

106  {
107  if(count($this->getViewers()) === 1){
108  $pk = new BlockEventPacket();
109  $pk->x = $this->getHolder()->getX();
110  $pk->y = $this->getHolder()->getY();
111  $pk->z = $this->getHolder()->getZ();
112  $pk->case1 = 1;
113  $pk->case2 = 0;
114  if(($level = $this->getHolder()->getLevel()) instanceof Level){
115  $level->addChunkPacket($this->getHolder()->getX() >> 4, $this->getHolder()->getZ() >> 4, $pk);
116  }
117  }
118 
119  parent::onClose($who);
120  }

◆ onOpen()

onOpen ( Player  $who)
Parameters
Player$who

Implements Inventory.

87  {
88  parent::onOpen($who);
89 
90  if(count($this->getViewers()) === 1){
91  $pk = new BlockEventPacket();
92  $pk->x = $this->getHolder()->getX();
93  $pk->y = $this->getHolder()->getY();
94  $pk->z = $this->getHolder()->getZ();
95  $pk->case1 = 1;
96  $pk->case2 = 2;
97  if(($level = $this->getHolder()->getLevel()) instanceof Level){
98  $level->addChunkPacket($this->getHolder()->getX() >> 4, $this->getHolder()->getZ() >> 4, $pk);
99  }
100  }
101  }

◆ openAt()

openAt ( Position  $pos)

Set the fake block menu's position to a valid tile position and send the inventory window to the owner

Parameters
Position$pos
71  {
72  $this->getHolder()->setComponents($pos->x, $pos->y, $pos->z);
73  $this->getHolder()->setLevel($pos->getLevel());
74  $this->owner->addWindow($this);
75  }

The documentation for this class was generated from the following file: