user = trim($user); $this->sessionId = trim($sessionId); $this->serverId = trim($serverId); $this->parseSessionId($this->sessionId); } public function getAccessToken(): string { return $this->accessToken; } public function getSelectedProfile(): string { return $this->uuid ?: $this->user; } public function getServerId(): string { return $this->serverId; } /** * @return bool */ public function validate(): bool { return !$this->isEmpty($this->accessToken) && !$this->isEmpty($this->user) && !$this->isEmpty($this->serverId); } /** * Метод проводит инициализацию значений полей для соотвествия общим канонам * именования в проекте * * Бьём по ':' для учёта авторизации в современных лаунчерах и входе на более старую * версию игры. Там sessionId передаётся как "token:{accessToken}:{uuid}", так что это нужно обработать */ private function parseSessionId(string $sessionId) { $parts = explode(':', $sessionId); if (count($parts) === 3) { $this->accessToken = $parts[1]; $this->uuid = $parts[2]; } else { $this->accessToken = $this->sessionId; } } }