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;
 }
示例#2
0
 public function clear($index)
 {
     if (isset($this->slots[$index])) {
         $item = Item::get(Item::AIR, \null, 0);
         $old = $this->slots[$index];
         $holder = $this->getHolder();
         if ($holder instanceof Entity) {
             Server::getInstance()->getPluginManager()->callEvent($ev = new EntityInventoryChangeEvent($holder, $old, $item, $index));
             if ($ev->isCancelled()) {
                 $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;
 }