public ActionResult MapperProgress()
        {
            var log = ProcHttpClient.GetLog("Mapper", 0)
                      .Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)
                      .Select(s => s.Split(new[] { '|' }, 2));

            if (!log.Any())
            {
                return(Content(""));
            }

            if (log.Last()[1] == "Process Ended!")
            {
                ProcHttpClient.ClearLog("Mapper");
                return(Content("Completed"));
            }

            var lastProg = log.LastOrDefault(s => s[1].Contains("% complete"));

            if (lastProg == null)
            {
                return(Content("0%"));
            }

            return(Content(lastProg[1].Split(' ')[8]));
        }
        public ActionResult StartMapper(string world)
        {
            var serverPath = WebConfig.AppSettings["McServerPath"];

            if (world == null)
            {
                world = McProperties.GetValue("level-name");
            }

            var mapsDir = Path.Combine(serverPath, "Map");

            if (!Directory.Exists(mapsDir))
            {
                Directory.CreateDirectory(mapsDir);
            }

            try
            {
                ProcHttpClient.StartProc("Mapper",
                                         Path.Combine(serverPath, "Overviewer\\overviewer.exe"),
                                         "-p 4 --rendermodes=smooth_lighting,smooth_night \""
                                         + world + "\" \"" + Path.Combine("Map", world) + "\"",
                                         serverPath);
            }
            catch (Exception ex)
            {
                Response.StatusCode = 500;
                return(Content(ex.ToString()));
            }

            return(Content("OK " + DateTime.Now.Ticks));
        }
        public ActionResult Start()
        {
            try
            {
                ProcHttpClient.StartProc("McServer", WebConfig.AppSettings["JrePath"],
                                         "-Xmx1024M -Xms512M -jar " + WebConfig.AppSettings["McJarFile"] + " nogui",
                                         WebConfig.AppSettings["McServerPath"]);
            }
            catch (Exception ex)
            {
                Response.StatusCode = 500;
                return(Content(ex.ToString()));
            }

            return(Content("OK " + DateTime.Now.Ticks));
        }
        public ActionResult ServerStatus()
        {
            McAuthHttpClient.Renew(User.Identity.Name, Request.UserHostAddress);

            if (HttpContext.Application["UpdateProgress"] != null)
            {
                return(Content("Updating"));
            }
            else if (ProcHttpClient.IsRunning("McServer"))
            {
                return(Content("Online"));
            }
            else
            {
                return(Content("Offline"));
            }
        }
        public ActionResult GetOutput(long since = 0)
        {
            var log = ProcHttpClient.GetLog("McServer", since)
                      .Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)
                      .Select(s => s.Split(new[] { '|' }, 2));

            var lastTimestamp = log.Last()[0];

            var result = new
            {
                Output = log.Aggregate("", (s1, s2) =>
                                       s1 + HttpUtility.HtmlEncode(s2[1]) + "<br />\r\n"),
                LastTimestamp = lastTimestamp,
                Ticks         = DateTime.Now.Ticks,
            };

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public ActionResult SendCommand(string command)
        {
            ProcHttpClient.WriteLine("McServer", command);

            return(Content("OK " + DateTime.Now.Ticks));
        }
Exemple #7
0
        public ActionResult StopHPW()
        {
            ProcHttpClient.DoAction("/Close");

            return(RedirectToAction(""));
        }
Exemple #8
0
        public ActionResult KillServer()
        {
            ProcHttpClient.KillProc("McServer");

            return(RedirectToAction(""));
        }