Passed
Pull Request — v3 (#626)
by
unknown
26:12 queued 23:53
created

Codmw2   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 2
eloc 15
c 3
b 0
f 0
dl 0
loc 49
ccs 14
cts 14
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A processPlayers() 0 33 2
1
<?php
2
/**
3
 * This file is part of GameQ.
4
 *
5
 * GameQ is free software; you can redistribute it and/or modify
6
 * it under the terms of the GNU Lesser General Public License as published by
7
 * the Free Software Foundation; either version 3 of the License, or
8
 * (at your option) any later version.
9
 *
10
 * GameQ is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU Lesser General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU Lesser General Public License
16
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
 */
18
19
namespace GameQ\Protocols;
20
21
use GameQ\Buffer;
22
use GameQ\Result;
23
24
/**
25
 * Call of Duty: Modern Warfare 2 Protocol Class
26
 *
27
 * @package GameQ\Protocols
28
 * @author  Wilson Jesus <>
29
 */
30
class Codmw2 extends Quake3
31
{
32
    /**
33
     * String name of this protocol class
34
     *
35
     * @type string
36
     */
37
    protected $name = 'codmw2';
38
39
    /**
40
     * Longer string name of this protocol class
41
     *
42
     * @type string
43
     */
44
    protected $name_long = "Call of Duty: Modern Warfare 2";
45
    
46 12
    protected function processPlayers(Buffer $buffer)
47
    {
48
        // Some games do not have a number of current players
49 12
        $playerCount = 0;
50
51
        // Set the result to a new result instance
52 12
        $result = new Result();
53
54
        // Loop until we are out of data
55 12
        while ($buffer->getLength()) {
56
            // Make a new buffer with this block
57 12
            $playerInfo = new Buffer($buffer->readString("\x0A"));
58
59
            // Add player info
60 12
            $result->addPlayer('frags', $playerInfo->readString("\x20"));
61 12
            $result->addPlayer('ping', $playerInfo->readString("\x20"));
62
63
            // Skip first "
64 12
            $playerInfo->skip(1);
65
66
            // Add player name, encoded
67 12
            $result->addPlayer('name', utf8_encode(trim(($playerInfo->readString('"')))));
68
69
            // Increment
70 12
            $playerCount++;
71 2
        }
72
73 12
        $result->add('clients', $playerCount);
74
        
75
        // Clear
76 12
        unset($buffer, $playerCount);
77
78 12
        return $result->fetch();
79
    }
80
}
81