private static void Prompt() { Console.Clear(); Console.WriteLine($"Current Server Directory: {ServerDirectory}"); Console.WriteLine($"Current Backups Directory: {BackupsDirectory}"); Console.WriteLine($"Current Server File Name (.jar file): {ServerFileName}"); Console.WriteLine($"Current Memory Allocated (in megabytes): {Memory}"); Console.WriteLine($"Current Daily Restart Time: {RestartTime.ToString()}"); Console.WriteLine(); Console.WriteLine("Enter 'C' to make changes to these settings"); Console.WriteLine("Enter 'R' to run the server with these settings'"); Console.Write("Input: "); string input = Console.ReadLine(); switch (input.Trim().ToLower()) { case "c": { bool result = false; while (!result) { result = ChangeSettings(); } break; } case "r": { StartProcess(); while (true) { if (DateTime.Now.TimeOfDay.Hours == RestartTime.Hours && DateTime.Now.TimeOfDay.Minutes == RestartTime.Minutes) { EndProcess(); BackupWorldFile(); StartProcess(); TimeSpan span = RestartTime.Add(new TimeSpan(0, 1, 0)) - DateTime.Now.TimeOfDay; int msUntilNextMinute = (int)span.TotalMilliseconds; if (msUntilNextMinute >= 0) { Thread.Sleep(msUntilNextMinute + 5000); } } } } } }
public static void Initialize() { CommandSystem.Register("Restart", AccessLevel.Administrator, new CommandEventHandler(Restart_OnCommand)); CommandSystem.Register("Shutdown", AccessLevel.Administrator, new CommandEventHandler(Shutdown_OnCommand)); if (Enabled) { DateTime now = DateTime.Now; DateTime force = new DateTime(now.Year, now.Month, now.Day, Hour, Minutes, 0); if (now > force) { force += TimeSpan.FromHours(Frequency); } RestartTime = force; BeginTimer(); Utility.WriteConsoleColor(ConsoleColor.Magenta, "[Auto Restart] Configured for {0}:{1}:00, every {2} hours!", RestartTime.Hour, RestartTime.Minute, Frequency); Utility.WriteConsoleColor(ConsoleColor.Magenta, "[Auto Restart] Next Shard Restart: {0}", RestartTime.ToString()); } }