Counter-Strike/cli/server.php

36 lines
935 B
PHP
Raw Normal View History

2022-08-13 12:40:42 +02:00
<?php
use cs\Core\ConsoleLogger;
use cs\Core\GameFactory;
2022-10-16 13:53:26 +02:00
use cs\Map as Maps;
2022-08-13 12:40:42 +02:00
use cs\Net\ClueSocket;
use cs\Net\Server;
use cs\Net\ServerSetting;
require __DIR__ . '/../vendor/autoload.php';
/////
$playersMax = (int)($argv[1] ?? 1);
$port = (int)($argv[2] ?? 8080);
$debug = (bool)($argv[3] ?? 0);
$bindAddress = "udp://0.0.0.0:$port";
/////
$logger = new ConsoleLogger();
$settings = new ServerSetting($playersMax);
$logger->info("Starting server on '{$bindAddress}', waiting maximum of '{$settings->warmupWaitSec}' sec for '{$playersMax}' player" . ($playersMax > 1 ? 's' : '') . " to connect.");
$net = new ClueSocket($bindAddress);
2022-10-04 19:45:10 +02:00
$game = ($debug ? GameFactory::createDebug() : GameFactory::createDefaultCompetitive());
2022-10-16 13:53:26 +02:00
$game->loadMap(new Maps\DefaultMap());
2022-08-13 12:40:42 +02:00
$server = new Server($game, $settings, $net);
$server->setLogger($logger);
2022-09-21 19:13:50 +02:00
if ($debug) {
$server->storeRequests();
}
2022-08-13 12:40:42 +02:00
$server->start();
sleep(1);
$net->close();