Passed
Push — develop ( 9f4e11...12be49 )
by Nikita
07:32
created

ServerService::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Gameap\Services;
4
5
use GameQ\GameQ;
6
use Gameap\Models\Server;
7
use Html;
8
9
class ServerService
10
{
11
    protected $gameq;
12
13
    public function __construct(GameQ $gameq)
14
    {
15
        $this->gameq = $gameq;
16
    }
17
18
    /**
19
     * @param Server $server
20
     * @return array
21
     */
22
    public function query(Server $server)
23
    {
24
        $query = $this->gameq->setOption('timeout', 5)
25
            ->addServer([
26
                'type' => $server->game->engine,
27
                'host' => "{$server->server_ip}:{$server->server_port}",
28
            ])
29
            ->process();
30
31
        $serverResult = $query["{$server->server_ip}:{$server->server_port}"];
32
33
        if ($serverResult['gq_online']) {
34
            $result = [
35
                'status' => $serverResult['gq_online'] ? 'online' : 'offline',
36
                'hostname' => $serverResult['gq_hostname'],
37
                'map' => $serverResult['gq_mapname'],
38
                'players' => $serverResult['gq_numplayers'] . '/' . $serverResult['gq_maxplayers'],
39
                'version' => isset($serverResult['version']) ? $serverResult['version'] : null,
40
                'password' => $serverResult['gq_password'] ? 'yes' : 'no',
41
                'joinlink' => $serverResult['gq_joinlink'],
42
            ];
43
        } else {
44
            $result = [
45
                'status' => 'offline',
46
            ];
47
        }
48
49
        return $result;
50
    }
51
}