$amount) { if ($amount == 0) { continue; } $availableItems[$itemKey] = $amount; } } $v = new Validator($this->args); $v->rule('required', [ 'itemID', 'amount' ]) ->rule('int', 'amount') ->rule('min', 'amount', GameConst::$inheritItemUniqueMinPoint) ->rule('keyExists', 'itemID', $availableItems); if (!$v->validate()) { return $v->errorStr(); } return null; } public function getRequiredSessionMode(): int { return static::REQ_GAME_LOGIN; } public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag) { $itemID = $this->args['itemID']; $amount = $this->args['amount']; $generalID = $session->generalID; $itemObj = buildItemClass($itemID); $general = General::createGeneralObjFromDB($generalID); $auctionResult = AuctionUniqueItem::openItemAuction($itemObj, $general, $amount); if(is_string($auctionResult)) { return $auctionResult; } return [ 'result' => true, 'auctionID' => $auctionResult->getInfo()->id, ]; } }