pocketmine\inventory\BaseTransaction::getChange PHP Метод

getChange() публичный Метод

Returns the change in inventory resulting from this transaction
public getChange ( ) : Item[
Результат pocketmine\item\Item[
    public function getChange()
    {
        $sourceItem = $this->getInventory()->getItem($this->slot);
        if ($sourceItem->deepEquals($this->targetItem, true, true, true)) {
            //This should never happen, somehow a change happened where nothing changed
            return null;
        } elseif ($sourceItem->deepEquals($this->targetItem)) {
            //Same item, change of count
            $item = clone $sourceItem;
            $countDiff = $this->targetItem->getCount() - $sourceItem->getCount();
            $item->setCount(abs($countDiff));
            if ($countDiff < 0) {
                //Count decreased
                return ["in" => null, "out" => $item];
            } elseif ($countDiff > 0) {
                //Count increased
                return ["in" => $item, "out" => null];
            } else {
                //Should be impossible (identical items and no count change)
                //This should be caught by the first condition even if it was possible
                return null;
            }
        } elseif ($sourceItem->getId() !== Item::AIR and $this->targetItem->getId() === Item::AIR) {
            //Slot emptied (item removed)
            return ["in" => null, "out" => clone $sourceItem];
        } elseif ($sourceItem->getId() === Item::AIR and $this->targetItem->getId() !== Item::AIR) {
            //Slot filled (item added)
            return ["in" => $this->getTargetItem(), "out" => null];
        } else {
            //Some other slot change - an item swap (tool damage changes will be ignored as they are processed server-side before any change is sent by the client
            return ["in" => $this->getTargetItem(), "out" => clone $sourceItem];
        }
    }