Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion player-counter/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"id": "player-counter",
"name": "Player Counter",
"author": "Boy132",
"version": "1.0.0",
"version": "1.1.0",
"description": "Show the amount of connected players to the server",
"category": "plugin",
"url": "https://github.com/pelican-dev/plugins/tree/main/player-counter",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace Boy132\PlayerCounter\Extensions\Query\Schemas;

class Arma3QueryTypeSchema extends SourceQueryTypeSchema
{
public function getId(): string
{
return 'arma3';
}

public function getName(): string
{
return 'Arma 3';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace Boy132\PlayerCounter\Extensions\Query\Schemas;

class ArmaReforgerQueryTypeSchema extends SourceQueryTypeSchema
{
public function getId(): string
{
return 'arma-reforger';
}

public function getName(): string
{
return 'Arma Reforger';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,22 @@ protected function run(string $ip, int $port, int $engine): ?array
$query->Connect($ip, $port, 5, $engine);

$info = $query->GetInfo();
$players = $query->GetPlayers();

if ($info === false) {
return null;
}

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

return [
'hostname' => $info['HostName'],
'map' => $info['Map'],
'current_players' => $info['Players'],
'max_players' => $info['MaxPlayers'],
'players' => array_map(fn ($player) => ['id' => (string) $player['Id'], 'name' => (string) $player['Name']], $players),
'hostname' => (string) ($info['HostName'] ?? 'Unknown'),
'map' => (string) ($info['Map'] ?? 'Unknown'),
'current_players' => (int) ($info['Players'] ?? 0),
'max_players' => (int) ($info['MaxPlayers'] ?? 0),
'players' => array_map(fn ($player) => [
'id' => (string) ($player['Id'] ?? ''),
'name' => (string) ($player['Name'] ?? 'Unknown'),
], $players),
Comment thread
coderabbitai[bot] marked this conversation as resolved.
];
} catch (Exception $exception) {
report($exception);
Expand Down
4 changes: 4 additions & 0 deletions player-counter/src/Providers/PlayerCounterPluginProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
use App\Models\Egg;
use App\Models\Role;
use Boy132\PlayerCounter\Extensions\Query\QueryTypeService;
use Boy132\PlayerCounter\Extensions\Query\Schemas\Arma3QueryTypeSchema;
use Boy132\PlayerCounter\Extensions\Query\Schemas\ArmaReforgerQueryTypeSchema;
use Boy132\PlayerCounter\Extensions\Query\Schemas\CitizenFXQueryTypeSchema;
use Boy132\PlayerCounter\Extensions\Query\Schemas\GoldSourceQueryTypeSchema;
use Boy132\PlayerCounter\Extensions\Query\Schemas\MinecraftBedrockQueryTypeSchema;
Expand Down Expand Up @@ -35,6 +37,8 @@ public function register(): void
$service->register(new MinecraftJavaQueryTypeSchema());
$service->register(new MinecraftBedrockQueryTypeSchema());
$service->register(new CitizenFXQueryTypeSchema());
$service->register(new Arma3QueryTypeSchema());
$service->register(new ArmaReforgerQueryTypeSchema());

return $service;
});
Expand Down
Loading