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 ();