diff --git a/player-counter/plugin.json b/player-counter/plugin.json index 20fedb77..609be6c0 100644 --- a/player-counter/plugin.json +++ b/player-counter/plugin.json @@ -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", diff --git a/player-counter/src/Extensions/Query/Schemas/Arma3QueryTypeSchema.php b/player-counter/src/Extensions/Query/Schemas/Arma3QueryTypeSchema.php new file mode 100644 index 00000000..a1abe620 --- /dev/null +++ b/player-counter/src/Extensions/Query/Schemas/Arma3QueryTypeSchema.php @@ -0,0 +1,16 @@ +Connect($ip, $port, 5, $engine); $info = $query->GetInfo(); - $players = $query->GetPlayers(); + + if (!$info) { + 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), ]; } catch (Exception $exception) { report($exception); diff --git a/player-counter/src/Providers/PlayerCounterPluginProvider.php b/player-counter/src/Providers/PlayerCounterPluginProvider.php index 0f90c67d..12352758 100644 --- a/player-counter/src/Providers/PlayerCounterPluginProvider.php +++ b/player-counter/src/Providers/PlayerCounterPluginProvider.php @@ -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; @@ -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; });