Ejemplo n.º 1
0
        public async Task StartServer()
        {
            Console.WriteLine("Starting server.");
            IsWorking = true;
            await Embeds.EditMessage(Embeds.ServerStarting());

            var request = new StartInstancesRequest();

            request.InstanceIds = new List <string>()
            {
                BotConfig.GetCachedConfig().Aws.EC2InstanceId
            };
            var response = await client.StartInstancesAsync(request);

            bool suc = await AwaitServerStart();

            if (suc)
            {
                while (true)
                {
                    await Task.Delay((int)BotConfig.GetCachedConfig().PollingDelay);

                    try
                    {
                        MineStat ms = new MineStat(BotConfig.GetCachedConfig().Minecraft.MinecraftServerIP, BotConfig.GetCachedConfig().Minecraft.MinecraftServerPort);
                        if (ms.ServerUp)
                        {
                            Console.WriteLine("MC Server up.");
                            break;
                        }
                        Console.WriteLine("MC Server is not up.");
                    }
                    catch
                    {
                        Console.WriteLine("Polling Minecraft server to see if it is online.. resulted in error.");
                    }
                }
                await Embeds.EditMessage(Embeds.ServerStarted());
                await StopServer();
            }
            else
            {
                Console.WriteLine("Server start failed due to maxing out maxInstanceStartAttempts.");
                return;
            }
        }