public function clear($index, $source = null) { if (isset($this->slots[$index])) { $item = Item::get(Item::AIR, null, 0); $old = $this->slots[$index]; if ($index >= $this->getSize() and $index < $this->size) { //Armor change Server::getInstance()->getPluginManager()->callEvent($ev = new EntityArmorChangeEvent($this->getHolder(), $old, $item, $index)); if ($ev->isCancelled()) { $this->sendArmorContents($this->getViewers()); $this->sendContents($this->getViewers()); return; } $item = $ev->getNewItem(); } if ($item->getID() !== Item::AIR) { $this->slots[$index] = clone $item; } else { unset($this->slots[$index]); } $this->onSlotChange($index, $old, $source); } }
public function clear($index) { if (isset($this->slots[$index])) { $item = Item::get(Item::AIR, \null, 0); $old = $this->slots[$index]; if ($index >= $this->getSize() and $index < $this->size) { //Armor change Server::getInstance()->getPluginManager()->callEvent($ev = new EntityArmorChangeEvent($this->getHolder(), $old, $item, $index)); if ($ev->isCancelled()) { if ($index >= $this->size) { $this->sendArmorSlot($index, $this->getViewers()); } else { $this->sendSlot($index, $this->getViewers()); } return \false; } $item = $ev->getNewItem(); } else { Server::getInstance()->getPluginManager()->callEvent($ev = new EntityInventoryChangeEvent($this->getHolder(), $old, $item, $index)); if ($ev->isCancelled()) { if ($index >= $this->size) { $this->sendArmorSlot($index, $this->getViewers()); } else { $this->sendSlot($index, $this->getViewers()); } return \false; } $item = $ev->getNewItem(); } if ($item->getId() !== Item::AIR) { $this->slots[$index] = clone $item; } else { unset($this->slots[$index]); } $this->onSlotChange($index, $old); } return \true; }