public void ReloadEnvironmentByChangingBinDir()
        {
            var binSourcePath = "Tests/ExampleApps/SetUpEnvironmentApp/bin/";

            GivenDLLsAreDeployedFrom(binSourcePath, (binDirPath) =>
            {
                using (var env = ServerRunner.RunWith(
                           EnvironmentOptionsTo(
                               dllPath: Path.Combine(binDirPath, "SetUpEnvironmentApp.dll"),
                               typeName: "SetUpEnvironmentApp.ServerEnvironment")))
                {
                    Assert.That(client.Get("http://localhost:9901/"), Is.Not.Empty);

                    EmptyDir(binDirPath);

                    Execution.Eventually(() =>
                    {
                        try
                        {
                            Assert.That(client.Get("http://localhost:9901/"), Is.Not.Empty);
                            Assert.Fail("Server must go down");
                        } catch (AssertionException)
                        {
                            throw;
                        } catch (Exception ex)
                        {
                        }
                    });
                }
            });
        }
Ejemplo n.º 2
0
        public ServerControl(Server server)
        {
            if (server == null)
            {
                throw new ArgumentNullException(nameof(server));
            }

            InitializeComponent();

            _server                = server;
            _serverRunner          = new ServerRunner(server);
            _serverRunner.Stopped += OnStopped;

            Disposed += (sender, e) => _serverRunner.Dispose();

            txtName.Text    = server.Name;
            txtFolder.Text  = server.Folder;
            txtAddress.Text = server.Address.ToString();
            numPort.Value   = server.Port;
            txtMap.Text     = server.Map;
            numSlots.Value  = server.MaxPlayers;
            btnApplyGeneralSettings.Enabled = false;

            if (_serverRunner.TryRecoverProcess(out bool consoleVisible))
            {
                UpdateControls(EState.Running);
                btnHideShowConsole.Text = consoleVisible ? HIDE_CONSOLE_TEXT : SHOW_CONSOLE_TEXT;
            }
            else
            {
                UpdateControls(EState.Stopped);
            }
        }
Ejemplo n.º 3
0
        public override async Task RunServer(IAsyncStreamReader <ServerArgs> requestStream, IServerStreamWriter <ServerStatus> responseStream, ServerCallContext context)
        {
            if (!await requestStream.MoveNext())
            {
                throw new InvalidOperationException();
            }
            var serverConfig = requestStream.Current.Setup;
            var runner       = ServerRunner.Start(_loggerFactory, serverConfig);

            try
            {
                await responseStream.WriteAsync(new ServerStatus
                {
                    Stats = runner.GetStats(false),
                    Port  = runner.BoundPort,
                    Cores = Environment.ProcessorCount,
                });

                while (await requestStream.MoveNext())
                {
                    var reset = requestStream.Current.Mark.Reset;
                    await responseStream.WriteAsync(new ServerStatus
                    {
                        Stats = runner.GetStats(reset)
                    });
                }
            }
            finally
            {
                _logger.LogInformation("Exiting RunServer.");
                await runner.StopAsync();
            }
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            ServerRunner runner = new ServerRunner();

            runner.Logger = new ConsoleLogger();
            runner.Run();
        }
Ejemplo n.º 5
0
        private ServerRunner DeployServer(string packageName, string storageType)
        {
            var serverDirectory = NewDataPath(packageName, true);

            IOExtensions.CopyDirectory("../../../packages/" + packageName + "/tools/", serverDirectory);

            return(ServerRunner.Run(Port, storageType, Path.Combine(serverDirectory, "Raven.Server.exe")));
        }
Ejemplo n.º 6
0
        protected override void OnPackageReceivedClient(byte[] package)
        {
            SpawnedPlayerInfo playerInfo = new SpawnedPlayerInfo();

            playerInfo.DeserializeInto(package);

            ServerRunner.SpawnPhysicalPlayer(playerInfo.PlayerID, playerInfo.Position, playerInfo.Rotation);
        }
        public void StartServerEnvironment()
        {
            ServerRunner.RunWith(
                EnvironmentOptionsTo(
                    dllPath: "Tests/ExampleApps/SetUpEnvironmentApp/bin/SetUpEnvironmentApp.dll",
                    typeName: "SetUpEnvironmentApp.ServerEnvironment"));

            Assert.That(client.Get("http://localhost:9901/"), Is.Not.Empty);
        }
Ejemplo n.º 8
0
        public override void OnCommandRan(string command)
        {
            string[] subCommand = command.Split(" ".ToCharArray());
            if (subCommand[0].ToLower() == "connect")
            {
                debug.Log("starting client...");

                ServerRunner.StartClient(subCommand[1]);
            }
        }
Ejemplo n.º 9
0
        /*
         * helper: If you dont like duplicationg code. Use this
         */
        private static (ServerRunner serverRunner, Player playerInit, ClientRunner clientRunner) InitiateServer()
        {
            var server = new ServerRunner();

            server.Start();
            var client = new ClientRunner("127.0.0.1", 32123);

            client.Start();
            client.JoinServer("player");
            return(server, server.GetPlayer("player"), client);
        }
        public void StartSimpleEnvironment()
        {
            ServerRunner.RunWith(
                EnvironmentOptionsTo(
                    dllPath: "Tests/ExampleApps/SetUpEnvironmentApp/bin/SetUpEnvironmentApp.dll",
                    typeName: "SetUpEnvironmentApp.ExampleEnvironment"),
                output: output,
                error: error);

            Assert.That(output.ToString(), Does.Contain("Started"));
        }
        public void StartSimpleEnvironmentWithDirectReferenceToLifecycle()
        {
            ServerRunner.RunWith(
                EnvironmentOptionsTo(
                    dllPath: "Tests\\ExampleApps\\SetUpEnvironmentApp\\bin\\SetUpEnvironmentApp.dll",
                    typeName: "SetUpEnvironmentApp.ExampleEnvironmentLifecycle"),
                output: output,
                error: error);

            Assert.That(output.ToString(), Does.Contain("Started"));
        }
Ejemplo n.º 12
0
        private void ServerThreadProc(object arg)
        {
            Thread.CurrentThread.Name = "Server Net";

            runner = new ServerRunner();
            runner.Run();

            lock (serverThreadLock)
                serverThread = null;

            this.Stop();
        }
Ejemplo n.º 13
0
        public void TestGetPlayerShouldNotBeNull()
        {
            var server = new ServerRunner();

            server.Start();
            var client = new ClientRunner("127.0.0.1", 32123);

            client.Start();
            client.JoinServer("player");
            server.GetPlayer("player").Should().NotBeNull();
            server.Stop();
        }
Ejemplo n.º 14
0
        public static void Run(ServerRunner webServer)
        {
            RegisterAssembly();

            try
            {
                webServer.Run();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public void LoadEnvironmentByPostPopulatingTheDir()
        {
            var binSourcePath = "Tests/ExampleApps/SetUpEnvironmentApp/bin/";
            var binDirPath    = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());

            using (var env = ServerRunner.RunWith(
                       EnvironmentOptionsTo(
                           dllPath: Path.Combine(binDirPath, "SetUpEnvironmentApp.dll"),
                           typeName: "SetUpEnvironmentApp.ServerEnvironment")))
            {
                CopyFilesTo(binSourcePath, binDirPath);

                Execution.Eventually(() => Assert.That(client.Get("http://localhost:9901/"), Is.Not.Empty));
            }
        }
Ejemplo n.º 16
0
        public void TestLeavePlayer()
        {
            var server = new ServerRunner();

            server.Start();
            var client = new ClientRunner("127.0.0.1", 32123);

            client.Start();
            client.JoinServer("player");
            Thread.Sleep(1000);
            var player = server.GetPlayer("player");

            server.LeavePlayer(server.GetPlayerInfo(player.Pseudo)).Should().Be(true);
            server.Stop();
        }
Ejemplo n.º 17
0
        public void TestGetPlayerPosition()
        {
            var server = new ServerRunner();

            server.Start();
            var client = new ClientRunner("127.0.0.1", 32123);

            client.Start();
            client.JoinServer("player");
            Thread.Sleep(1000);
            var player = server.GetPlayer("player");

            Thread.Sleep(1000);
            server.Invoking(o => o.GetPlayerPosition(player)).ShouldNotThrow <NullReferenceException>();
            server.Stop();
        }
Ejemplo n.º 18
0
        public static void StartApplication(MvcApplication mvcApplication)
        {
            if (Interlocked.Exchange(ref isStarted, 1) == 1)
            {
                return;                                              // prevent double start
            }
            var listener = new ZkServerTraceListener();

            Trace.Listeners.Add(listener);
            Trace.TraceInformation("Starting Zero-K.info web and application");

            GlobalConst.SiteDiskPath = MapPath("~");

            AwardCalculator = new AwardCalculator();
            AwardCalculator.RecomputeNow();

            var sitePath = mvcApplication.Server.MapPath("~");

            ZkServerRunner = new ServerRunner(sitePath, new PlanetwarsEventCreator());
            Server         = ZkServerRunner.ZkLobbyServer;

            Trace.TraceInformation("Starting lobby server");
            ZkServerRunner.Run();
            listener.ZkLobbyServer = Server;

            ForumPostIndexer = new ForumPostIndexer();

            SteamDepotGenerator = new SteamDepotGenerator(sitePath, Path.Combine(sitePath, "..", "steamworks", "tools", "ContentBuilder", "content"));


            SetupPaypalInterface();


            // HACK Task.Factory.StartNew(() => SteamDepotGenerator.RunAll());

            Trace.TraceInformation("Starting autoregistrator");
            AutoRegistrator = new AutoRegistrator(MapPath("~"));
            AutoRegistrator.NewZkReleaseRegistered += (game, chobby) =>
            {
                SteamDepotGenerator.RunAll();
                Server.SetGame(game);
            };

            AutoRegistrator.RunMainAndMapSyncAsync();
        }
Ejemplo n.º 19
0
        public static void StartApplication(MvcApplication mvcApplication)
        {
            var listener = new ZkServerTraceListener();

            Trace.Listeners.Add(listener);

            ZkServerRunner = new ServerRunner(mvcApplication.Server.MapPath("~"));
            Server         = ZkServerRunner.ZkLobbyServer;
            ZkServerRunner.Run();
            listener.ZkLobbyServer = Server;

            SetupPaypalInterface();

            if (GlobalConst.PlanetWarsMode == PlanetWarsModes.Running)
            {
                PlanetWarsMatchMaker = new PlanetWarsMatchMaker(Server);
            }
        }
Ejemplo n.º 20
0
        private static int Main(string[] args)
        {
            using CancellationTokenSource cts = new CancellationTokenSource();

            void CancelHandler(object sender, ConsoleCancelEventArgs args)
            {
                args.Cancel = true;
                cts.Cancel();
                Console.CancelKeyPress -= CancelHandler !;
            }

            Console.CancelKeyPress += CancelHandler;

            return(new Parser(settings => { settings.HelpWriter = Console.Out; })
                   .ParseArguments <ClientOptions, ServerOptions, InProcOptions>(args)
                   .MapResult(
                       (ClientOptions opts) => ClientRunner.Run(opts, cts),
                       (ServerOptions opts) => ServerRunner.Run(opts, cts.Token),
                       (InProcOptions opts) => InProcRunner.Run(opts, cts),
                       _ => 1));
        }
Ejemplo n.º 21
0
        private static async Task <int> Execute(string[] args, CancellationToken token)
        {
            var settings = SettingsParser.ParseArgs(CesxSettings.Default, args);

            Console.WriteLine("CESX: starting with settings");
            Console.WriteLine(settings);

            if (!settings.SkipBackup)
            {
                Console.WriteLine("CESX: Creating backup...");
                var backuper = new ServerBackuper(settings);
                backuper.DoBackup();
                Console.WriteLine("CESX: Done!");
            }

            if (!settings.SkipUpdate)
            {
                Console.WriteLine("CESX: Try updating server files");
                _updater = new ServerUpdater(settings);

                Console.WriteLine("CESX: Downloading SteamCmd...");
                await _updater.EnsureSteamCmdExistsAsync(token);

                Console.WriteLine("CESX: Done!");

                Console.WriteLine("CESX: Running steamcmd...");
                await _updater.RunSteamCmdUpdaterAsync(token);

                Console.WriteLine("CESX: Done!");

                //_updater.Dispose();
            }

            Console.WriteLine("CESX: Starting the server instance");
            _server = new ServerRunner(settings);
            _server.Run();

            return((int)ExitCode.Success);
        }
Ejemplo n.º 22
0
        public static void Main(string[] args)
        {
            var server = new ServerRunner(1337, new ControllerRouter());

            MvcEngine.Run(server);
        }