Exemplo n.º 1
0
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true)
                          .AddJsonFile("appsettings.local.json", optional: true)
                          .AddCommandLine(args);

            var configurationRoot = builder.Build();

            var serverAdress = configurationRoot["address"];
            var serverPort   = int.Parse(configurationRoot["port"]);
            var password     = configurationRoot["password"];

            var soldatClient = new SoldatClient(new PacketParser());

            soldatClient.Connect(serverAdress, serverPort, password);

            while (true)
            {
                ServerEvent serverEvent = soldatClient.ReadNextEvent().Result;
                Console.WriteLine(serverEvent);

                var jsonServerEvent = JsonConvert.SerializeObject(serverEvent);

                File.AppendAllText("output.json", ",\r\n" + jsonServerEvent);

                Thread.Sleep(500);
            }
        }
Exemplo n.º 2
0
        public static ClientMonitor Run(SoldatClient client)
        {
            var connection = new ClientMonitor()
            {
                Client = client
            };

            Task.Run(connection.ReadLoop);

            return(connection);
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            var settings = LoadSettings();

            var clients = settings.Servers
                          .Select(serverSettings => SoldatClient.CreateConnected(serverSettings.Address, serverSettings.Port, serverSettings.Password))
                          .ToArray();

            var clientMonitors = clients.Select(ClientMonitor.Run).ToArray();

            var multiServerSoldatClient = new MultiServerSoldatClient(clients);
            var soldatTournament        = new SoldatTournament();

            soldatTournament.Start(multiServerSoldatClient);

            while (true)
            {
                var command = Console.ReadLine();
                if (command == "quit")
                {
                    break;
                }

                if (command == "p")
                {
                    soldatTournament.TogglePause();
                }

                if (command == "swap")
                {
                    multiServerSoldatClient.SwapTeams();
                }
                else
                {
                    multiServerSoldatClient.SendRaw(command);
                }
            }
        }