Skip to content

Commit b0cfcb3

Browse files
committed
fix(player-counter): use null as sentinel for unsupported player lists
1 parent 43f16be commit b0cfcb3

File tree

4 files changed

+10
-10
lines changed

4 files changed

+10
-10
lines changed

player-counter/src/Extensions/Query/Schemas/CitizenFXQueryTypeSchema.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public function getName(): string
1818
return 'CitizenFX';
1919
}
2020

21-
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: array<array{id: string, name: string}>} */
21+
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: ?array<array{id: string, name: string}>} */
2222
public function process(string $ip, int $port): ?array
2323
{
2424
try {

player-counter/src/Extensions/Query/Schemas/GoldSourceQueryTypeSchema.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public function getName(): string
1616
return 'GoldSrc';
1717
}
1818

19-
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: array<array{id: string, name: string}>} */
19+
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: ?array<array{id: string, name: string}>} */
2020
public function process(string $ip, int $port): ?array
2121
{
2222
return $this->run($ip, $port, SourceQuery::GOLDSOURCE);

player-counter/src/Extensions/Query/Schemas/MinecraftJavaQueryTypeSchema.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public function getName(): string
1919
return 'Minecraft (Java)';
2020
}
2121

22-
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: array<array{id: string, name: string}>} */
22+
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: ?array<array{id: string, name: string}>} */
2323
public function process(string $ip, int $port): ?array
2424
{
2525
$query = $this->tryQuery($ip, $port);
@@ -41,7 +41,7 @@ public function process(string $ip, int $port): ?array
4141
'map' => 'world', // No map from MinecraftPing
4242
'current_players' => $data['players']['online'],
4343
'max_players' => $data['players']['max'],
44-
'players' => $data['players']['sample'] ?? [],
44+
'players' => $data['players']['sample'] ?? null,
4545
];
4646
} catch (Exception $exception) {
4747
report($exception);
@@ -54,7 +54,7 @@ public function process(string $ip, int $port): ?array
5454
return null;
5555
}
5656

57-
/** @return false|array{hostname: string, map: string, current_players: int, max_players: int, players: array<array{id: string, name: string}>} */
57+
/** @return false|array{hostname: string, map: string, current_players: int, max_players: int, players: ?array<array{id: string, name: string}>} */
5858
protected function tryQuery(string $ip, int $port): false|array
5959
{
6060
$query = new MinecraftQuery();

player-counter/src/Extensions/Query/Schemas/SourceQueryTypeSchema.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ public function getName(): string
1818
return 'Source';
1919
}
2020

21-
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: array<array{id: string, name: string}>} */
21+
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: ?array<array{id: string, name: string}>} */
2222
public function process(string $ip, int $port): ?array
2323
{
2424
return $this->run($ip, $port, SourceQuery::SOURCE);
2525
}
2626

27-
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: array<array{id: string, name: string}>} */
27+
/** @return ?array{hostname: string, map: string, current_players: int, max_players: int, players: ?array<array{id: string, name: string}>} */
2828
protected function run(string $ip, int $port, int $engine): ?array
2929
{
3030
$query = new SourceQuery();
@@ -38,17 +38,17 @@ protected function run(string $ip, int $port, int $engine): ?array
3838
return null;
3939
}
4040

41-
$players = $query->GetPlayers() ?: [];
41+
$players = $query->GetPlayers();
4242

4343
return [
4444
'hostname' => (string) ($info['HostName'] ?? 'Unknown'),
4545
'map' => (string) ($info['Map'] ?? 'Unknown'),
4646
'current_players' => (int) ($info['Players'] ?? 0),
4747
'max_players' => (int) ($info['MaxPlayers'] ?? 0),
48-
'players' => array_map(fn ($player) => [
48+
'players' => is_array($players) ? array_map(fn ($player) => [
4949
'id' => (string) ($player['Id'] ?? ''),
5050
'name' => (string) ($player['Name'] ?? 'Unknown'),
51-
], $players),
51+
], $players) : null,
5252
];
5353
} catch (Exception $exception) {
5454
report($exception);

0 commit comments

Comments
 (0)