isConnected = false; return; } $this->pid = $mpPlayer->playerId; $this->login = $mpPlayer->login; $this->nickname = Formatter::stripDirtyCodes($mpPlayer->nickName); $this->rawNickname = $mpPlayer->nickName; $this->path = $mpPlayer->path; $this->language = $mpPlayer->language; $this->avatar = $mpPlayer->avatar['FileName']; $this->allies = $mpPlayer->allies; $this->clubLink = $mpPlayer->clubLink; $this->teamId = $mpPlayer->teamId; $this->isOfficial = $mpPlayer->isInOfficialMode; $this->ladderScore = $mpPlayer->ladderStats['PlayerRankings'][0]['Score']; $this->ladderRank = $mpPlayer->ladderStats['PlayerRankings'][0]['Ranking']; $this->ladderStats = $mpPlayer->ladderStats; $this->daysSinceZoneInscription = $mpPlayer->hoursSinceZoneInscription / 24; $this->ipAddress = $mpPlayer->iPAddress; $this->clientVersion = $mpPlayer->clientVersion; $this->downloadRate = $mpPlayer->downloadRate; $this->uploadRate = $mpPlayer->uploadRate; $this->skins = $mpPlayer->skins; //Flag Details $this->forcedSpectatorState = $mpPlayer->forceSpectator; $this->isReferee = $mpPlayer->isReferee; $this->isPodiumReady = $mpPlayer->isPodiumReady; $this->isUsingStereoscopy = $mpPlayer->isUsingStereoscopy; $this->isServer = $mpPlayer->isServer; $this->isManagedByAnOtherServer = $mpPlayer->isManagedByAnOtherServer; $this->hasPlayerSlot = $mpPlayer->hasPlayerSlot; $this->hasJoinedGame = $mpPlayer->hasJoinedGame; $this->isBroadcasting = $mpPlayer->isBroadcasting; //Spectator Status $this->isSpectator = $mpPlayer->spectator; $this->isTemporarySpectator = $mpPlayer->temporarySpectator; $this->isPureSpectator = $mpPlayer->pureSpectator; $this->autoTarget = $mpPlayer->autoTarget; $this->currentTargetId = $mpPlayer->currentTargetId; $this->joinTime = time(); if (!$this->nickname) { $this->nickname = $this->login; } } /** * Check if player is not a real player * * @return bool */ public function isFakePlayer() { return ($this->pid <= 0 || $this->path == ""); } /** * Get province * * @return string */ public function getProvince() { $pathParts = explode('|', $this->path); if (isset($pathParts[3])) { return $pathParts[3]; } return $this->getCountry(); } /** * Get country * * @return string */ public function getCountry() { $pathParts = explode('|', $this->path); if (isset($pathParts[2])) { return $pathParts[2]; } if (isset($pathParts[1])) { return $pathParts[1]; } if (isset($pathParts[0])) { return $pathParts[0]; } return $this->path; } /** * Get continent * * @return string */ public function getContinent() { $pathParts = explode('|', $this->path); if (isset($pathParts[1])) { return $pathParts[1]; } if (isset($pathParts[0])) { return $pathParts[0]; } return $this->path; } /** * Updates the Flags of the Player * * @param $flags */ public function updatePlayerFlags($flags) { //Detail flags $this->forcedSpectatorState = $flags % 10; // 0, 1 or 2 $this->isReferee = (bool)(intval($flags / 10) % 10); $this->isPodiumReady = (bool)(intval($flags / 100) % 10); $this->isUsingStereoscopy = (bool)(intval($flags / 1000) % 10); $this->isManagedByAnOtherServer = (bool)(intval($flags / 10000) % 10); $this->isServer = (bool)(intval($flags / 100000) % 10); $this->hasPlayerSlot = (bool)(intval($flags / 1000000) % 10); $this->isBroadcasting = (bool)(intval($flags / 10000000) % 10); $this->hasJoinedGame = (bool)(intval($flags / 100000000) % 10); } /** * Updates the Spectator Status of the player * * @param $spectatorStatus */ public function updateSpectatorStatus($spectatorStatus) { //Details spectatorStatus $this->isSpectator = (bool)($spectatorStatus % 10); $this->isTemporarySpectator = (bool)(intval($spectatorStatus / 10) % 10); $this->isPureSpectator = (bool)(intval($spectatorStatus / 100) % 10); $this->autoTarget = (bool)(intval($spectatorStatus / 1000) % 10); $this->currentTargetId = intval($spectatorStatus / 10000); } }