Returns the list of banned players.
@param int $length Maximum number of infos to be returned
@param int $offset Starting index in the list
@param bool $multicall
@return Structures\PlayerBan[]
@throws InvalidArgumentException
491139
function getBanList($length = -1, $offset = 0, $multicall = false)
    {
        if (!is_int($length)) {
            throw new InvalidArgumentException('length = ' . print_r($length, true));
        }
        if (!is_int($offset)) {
            throw new InvalidArgumentException('offset = ' . print_r($offset, true));
        }

        if ($multicall) {
            return $this->execute(ucfirst(__FUNCTION__), array($length, $offset), $this->structHandler('PlayerBan', true));
        }
        return Structures\PlayerBan::fromArrayOfArray($this->execute(ucfirst(__FUNCTION__), array($length, $offset)));
    }
874094
private function multiCall( $params = null ) {
		if ( $params && is_array( $params ) ) 
		{
			$result = array();
			$params = $params[0];
			foreach ( $params as $param ) {
				$method = $param['methodName'];
				$args = $param['params'];
				try {
					// XML-RPC specification says that non-fault results must be in a single item array
					$result[] = array( $this->call($method, $args) );
				} catch( Exception $e) {
					$result[] = ripcord::fault( $e->getCode(), $e->getMessage() );
				}
			}
			$result = xmlrpc_encode_request( null, $result, $this->outputOptions );
		} else {
			$result = xmlrpc_encode_request( 
				null, 
				ripcord::fault( -2, 'Illegal or no params set for system.multiCall'), 
				$this->outputOptions
			);
		}	
		return $result;
	}
227166
public function getMessages($id, $limit = 20, $offset = 0)
    {
        if ($this->isEmptyId($id)) {
            throw new InvalidArgumentException;
        }

        $params = [
            'count' => $limit,
            'after' => $offset
        ];

        $data = $this->call('conversations/' . $id . '/parts', $params, 'get');

        $array = [];
        if ($data) {
            foreach ($data as $msg) {
                $array[] = Message::fromResponse($msg);
            }
        }

        return $array;
    }
123753
public function slice($offset = 0, $length = null)
    {
        return $this->createSubCrawler(\array_slice($this->nodes, $offset, $length));
    }
366470
function sendToServerAfterMatchEnd($link, $multicall = false)
    {
        if (!is_string($link)) {
            throw new InvalidArgumentException('link = ' . print_r($link, true));
        }

        $link = str_replace("maniaplanet://", "", $link);

        return $this->execute(ucfirst(__FUNCTION__), array($link), $multicall);
    }
412474
public function getSlice($offset, $length)
    {
        $query = clone $this->query;
        $query->offset = $offset;
        $query->limit = $length;
        $query->performCount = false;

        $searchResult = $this->filterService->filterContent($query);

        // Set count for further use if returned by search engine despite !performCount (Solr, ES)
        if (null === $this->nbResults && null !== $searchResult->totalCount) {
            $this->nbResults = $searchResult->totalCount;
        }

        $list = [];
        foreach ($searchResult->searchHits as $hit) {
            $list[] = $hit->valueObject;
        }

        return $list;
    }
796125
function setCupRoundsPerMap($rounds, $multicall = false)
    {
        if (!is_int($rounds)) {
            throw new InvalidArgumentException('rounds = ' . print_r($rounds, true));
        }

        return $this->execute(ucfirst(__FUNCTION__), array($rounds), $multicall);
    }
937120
public function getSlice($offset, $length)
    {
        return $this->datasetFactory
            ->bookmarks()
            ->load($offset, $length)
            ->getBookmarks();
    }
1201509
public function getTopGames($limit = 10, $offset = 0)
    {
        if (!$this->isValidLimit($limit)) {
            throw new InvalidLimitException();
        }

        if (!$this->isValidOffset($offset)) {
            throw new InvalidOffsetException();
        }

        $params = [
            'limit' => $limit,
            'offset' => $offset,
        ];

        return $this->get('games/top', $params);
    }
926513
public function listTrashed($offset, $limit, array $sort = null)
    {
        try {
            return $this->innerGateway->listTrashed($offset, $limit, $sort);
        } catch (DBALException $e) {
            throw new RuntimeException('Database error', 0, $e);
        } catch (PDOException $e) {
            throw new RuntimeException('Database error', 0, $e);
        }
    }
390565
public function getSlice($offset, $length)
    {
        $list = array();
        foreach (parent::getSlice($offset, $length) as $hit) {
            $list[] = $hit->valueObject;
        }

        return $list;
    }
462541
function keepPlayerSlots($keep = true, $multicall = false)
    {
        if (!is_bool($keep)) {
            throw new InvalidArgumentException('keep = ' . print_r($keep, true));
        }

        return $this->execute(ucfirst(__FUNCTION__), array($keep), $multicall);
    }
856666
public function slice(int $offset, int $length = null):ByteArray{

		// keep an extended class
		/** @var \chillerlan\Traits\ArrayHelpers\ByteArray $slice */
		$slice  = (new ReflectionClass($this))->newInstanceArgs([$length ?? ($this->count() - $offset)]);

		foreach($slice as $i => $_){
			$slice[$i] = $this[$offset + $i];
		}

		return $slice;
	}
1337958
function getMapInfo($filename, $multicall = false)
    {
        if (!is_string($filename)) {
            throw new InvalidArgumentException('filename = ' . print_r($filename, true));
        }
        $filename = $this->secureUtf8($filename);

        if ($multicall) {
            return $this->execute(ucfirst(__FUNCTION__), array($filename), $this->structHandler('Map'));
        }
        return Structures\Map::fromArray($this->execute(ucfirst(__FUNCTION__), array($filename)));
    }
446119
function unBan($player, $multicall = false)
    {
        $login = $this->getLogin($player);
        if ($login === false) {
            throw new InvalidArgumentException('player = ' . print_r($player, true));
        }

        return $this->execute(ucfirst(__FUNCTION__), array($login), $multicall);
    }
1080515
public function getFollowersIds(array $parameters = array(), $multipart = false, $appOnlyAuth = false)
    {
        return $this->get('followers/ids', $parameters, $multipart, $appOnlyAuth);
    }
263493
public function read($offset, $length = 1)
    {
        $ret = '';
        $segno = floor($offset / $this->segsize);
        $sOffset = $offset % $this->segsize;
        while (true) {
            if (!isset($this->segments[$segno])) {
                if (!$this->open($segno)) {
                    goto ret;
                }
            }

            $ret .= shmop_read($this->segments[$segno], $sOffset, min($length - mb_orig_strlen($ret), $this->segsize));

            if (mb_orig_strlen($ret) >= $length) {
                goto ret;
            }

            ++$segno;

            $sOffset = 0;
        }
        ret:

        return $ret === '' ? false : $ret;
    }