public override void Execute(List <string> _params, CommandSenderInfo _senderInfo) { try { if (_params.Count > 1) { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 0 or 1, found {0}", _params.Count)); return; } if (_params.Count == 0) { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Starting backup")); AutoBackup.Exec(); SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Backup complete")); return; } else if (_params[0].ToLower().Equals("off")) { if (AutoBackup.IsEnabled) { AutoBackup.IsEnabled = false; Config.WriteXml(); SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Auto backup has been set to off")); return; } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Auto backup is already off")); return; } } else if (_params[0].ToLower().Equals("on")) { if (!AutoBackup.IsEnabled) { AutoBackup.IsEnabled = true; Config.WriteXml(); SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Auto backup has been set to on")); return; } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Auto backup is already on")); return; } } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Invalid argument {0}", _params[0])); } } catch (Exception e) { Log.Out(string.Format("[SERVERTOOLS] Error in AutoBackup.Execute: {0}", e.Message)); } }
private static void Exec() { if (!StopServer.ShuttingDown) { PersistentOperations.PlayerCheck(); if (Jail.IsEnabled) { Jail.StatusCheck(); } if (TwoSecondTick >= 2) { TwoSecondTick = 0; if (WorldRadius.IsEnabled) { WorldRadius.Exec(); } if (PlayerChecks.GodEnabled || PlayerChecks.FlyEnabled || PlayerChecks.SpectatorEnabled || PlayerChecks.WaterEnabled) { PlayerChecks.Exec(); } } if (FiveSecondTick >= 5) { FiveSecondTick = 0; if (Zones.IsEnabled) { Zones.HostileCheck(); } if (PlayerStats.IsEnabled) { PlayerStats.Exec(); } } if (TenSecondTick >= 10) { TenSecondTick = 0; if (EntityCleanup.IsEnabled) { EntityCleanup.EntityCheck(); } } if (SixtySecondTick >= 60) { SixtySecondTick = 0; if (Jail.IsEnabled && Jail.Jailed.Count > 0) { Jail.Clear(); } if (Mute.IsEnabled && Mute.Mutes.Count > 0) { Mute.Clear(); } if (BloodmoonWarrior.IsEnabled) { BloodmoonWarrior.Exec(); } } if (WeatherVote.IsEnabled && WeatherVote.VoteOpen) { _weatherVote++; if (_weatherVote >= 60) { _weatherVote = 0; WeatherVote.VoteOpen = false; WeatherVote.ProcessWeatherVote(); } } if (RestartVote.IsEnabled && RestartVote.VoteOpen) { _restartVote++; if (_restartVote >= 60) { _restartVote = 0; RestartVote.VoteOpen = false; RestartVote.ProcessRestartVote(); } } if (MuteVote.IsEnabled && MuteVote.VoteOpen) { _muteVote++; if (_muteVote >= 60) { _muteVote = 0; MuteVote.VoteOpen = false; MuteVote.ProcessMuteVote(); } } if (KickVote.IsEnabled && KickVote.VoteOpen) { _kickVote++; if (_kickVote >= 60) { _kickVote = 0; KickVote.VoteOpen = false; KickVote.ProcessKickVote(); } } if (Lottery.IsEnabled && Lottery.OpenLotto) { _lottery++; if (_lottery == 3300) { Lottery.Alert(); } if (_lottery >= 3600) { _lottery = 0; Lottery.StartLotto(); } } else { _lottery = 0; } if (Hordes.IsEnabled) { _horde++; if (_horde >= 1200) { _horde = 0; Hordes.Exec(); } } else { _horde = 0; } if (NightAlert.IsEnabled) { _nightAlert++; if (_nightAlert >= NightAlert.Delay * 60) { _nightAlert = 0; NightAlert.Exec(); } } else { _nightAlert = 0; } if (Watchlist.IsEnabled) { _watchList++; if (_watchList >= Watchlist.Delay * 60) { _watchList = 0; Watchlist.CheckWatchlist(); } } else { _watchList = 0; } if (Bloodmoon.IsEnabled & Bloodmoon.Auto_Show) { if (Bloodmoon.Delay > 0) { _bloodmoon++; if (_bloodmoon >= Bloodmoon.Delay * 60) { _bloodmoon = 0; Bloodmoon.StatusCheck(); } } } else { _bloodmoon = 0; } if (PlayerLogs.IsEnabled & PlayerLogs.Delay > 0) { _playerLogs++; if (_playerLogs >= PlayerLogs.Delay) { _playerLogs = 0; PlayerLogs.Exec(); } } else { _playerLogs = 0; } if (StopServer.CountingDown) { StopServerSeconds++; if (StopServerSeconds == 60) { StopServerSeconds = 0; StopServerMinutes--; } if (StopServerMinutes == 0) { StopServerSeconds = 0; StopServer.CountingDown = false; StopServer.Stop(); } if (StopServerMinutes == 1 && StopServerSeconds == 0) { StopServer.StartShutdown3(); } if (StopServerMinutes > 1 && StopServerSeconds == 0) { StopServer.StartShutdown2(StopServerMinutes); } if (StopServerMinutes == 1 && StopServerSeconds == 30) { StopServer.Kick30(); } } if (AutoSaveWorld.IsEnabled & AutoSaveWorld.Delay > 0) { _autoSaveWorld++; if (_autoSaveWorld >= AutoSaveWorld.Delay * 60) { _autoSaveWorld = 0; AutoSaveWorld.Save(); } } else { _autoSaveWorld = 0; } if (Shutdown.IsEnabled && !StopServer.CountingDown) { if (Shutdown.BloodmoonOver && !Event.Open) { _shutdownBloodmoonOver++; if (_shutdownBloodmoonOver >= 900) { _shutdownBloodmoonOver = 0; Shutdown.BloodmoonOver = false; Shutdown.Stop(); } } else if (!Shutdown.Bloodmoon) { _shutdown++; if (_shutdown >= Shutdown.Delay * 60) { if (Event.Open) { if (!Event.OperatorWarned) { Event.OperatorWarned = true; ClientInfo _cInfo = ConsoleHelper.ParseParamIdOrName(Event.Operator); if (_cInfo != null) { ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + "A scheduled shutdown is set to begin but is on hold until the event ends" + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null); } } } else { _shutdown = 0; Shutdown.BloodmoonCheck(); } } } else if (Shutdown.Bloodmoon) { _shutdownBloodmoon++; if (_shutdownBloodmoon >= 150) { _shutdownBloodmoon = 0; Shutdown.BloodmoonCheck(); } } } else { _shutdown = 0; } if (InfoTicker.IsEnabled) { _infoTicker++; if (_infoTicker >= InfoTicker.Delay * 60) { _infoTicker = 0; InfoTicker.Exec(); } } else { _infoTicker = 0; } if (Event.Invited) { _eventInvitation++; if (_eventInvitation >= 900) { _eventInvitation = 0; Event.Invited = false; Event.CheckOpen(); } } else { _eventInvitation = 0; } if (Event.Open) { _eventOpen++; if (_eventOpen == _eventTime / 2) { Event.HalfTime(); } if (_eventOpen == _eventTime - 300) { Event.FiveMin(); } if (_eventOpen >= _eventTime) { _eventOpen = 0; Event.EndEvent(); } } else { _eventOpen = 0; } if (RestartVote.Cycle) { _restartVoteCycle++; if (_restartVoteCycle >= 1800) { RestartVote.Cycle = false; } } else { _restartVoteCycle = 0; } if (Zones.IsEnabled & Zones.Reminder.Count > 0) { _zoneReminder++; if (_zoneReminder >= Zones.Reminder_Delay * 60) { _zoneReminder = 0; Zones.ReminderExec(); } } else { _zoneReminder = 0; } if (AutoBackup.IsEnabled) { _autoBackup++; if (_autoBackup >= AutoBackup.Delay * 60) { _autoBackup = 0; AutoBackup.Exec(); } } else { _autoBackup = 0; } if (BreakTime.IsEnabled) { _breakTime++; if (_breakTime >= BreakTime.Break_Time * 60) { _breakTime = 0; BreakTime.Exec(); } } else { _breakTime = 0; } if (Track.IsEnabled) { _tracking++; if (_tracking >= 20) { _tracking = 0; Track.Exec(); } } else { _tracking = 0; } if (InvalidItems.IsEnabled && InvalidItems.Check_Storage) { _invalidItems++; if (_invalidItems >= 300) { _invalidItems = 0; InvalidItems.CheckStorage(); } } else { _invalidItems = 0; } if (RealWorldTime.IsEnabled) { _realWorldTime++; if (_realWorldTime >= RealWorldTime.Delay * 60) { _realWorldTime = 0; RealWorldTime.Time(); } } else { _realWorldTime = 0; } } }
public static void Exec() //Dictionary keys in schedule correspond to specific class in order to execute corresponding methods { try { foreach (var _event in Schedule.ToArray()) { if (DateTime.Now >= _event.Value) { if (_event.Key == "AutoBackup") { Add("AutoBackup", DateTime.Now.AddMinutes(AutoBackup.Delay)); AutoBackup.Exec(); } else if (_event.Key == "AutoSaveWorld") { Add("AutoSaveWorld", DateTime.Now.AddMinutes(AutoSaveWorld.Delay)); AutoSaveWorld.Save(); } else if (_event.Key == "Bloodmoon") { Add("Bloodmoon", DateTime.Now.AddMinutes(Bloodmoon.Delay)); Bloodmoon.StatusCheck(); } else if (_event.Key == "BreakTime") { Add("BreakTime", DateTime.Now.AddMinutes(BreakTime.Delay)); BreakTime.Exec(); } else if (_event.Key == "InfoTicker") { Add("InfoTicker", DateTime.Now.AddMinutes(InfoTicker.Delay)); InfoTicker.Exec(); } else if (_event.Key == "NightAlert") { Add("NightAlert", DateTime.Now.AddMinutes(NightAlert.Delay)); NightAlert.Exec(); } else if (_event.Key == "PlayerLogs") { Add("PlayerLogs", DateTime.Now.AddMinutes(PlayerLogs.Delay)); PlayerLogs.Exec(); } else if (_event.Key == "RealWorldTime") { Add("RealWorldTime", DateTime.Now.AddMinutes(RealWorldTime.Delay)); RealWorldTime.Exec(); } else if (_event.Key == "Watchlist") { Add("Watchlist", DateTime.Now.AddMinutes(Watchlist.Delay)); Watchlist.CheckWatchlist(); } else if (_event.Key == "Zones") { Add("Zones", DateTime.Now.AddMinutes(Zones.Reminder_Delay)); Zones.ReminderExec(); } else if (_event.Key == "Shutdown") //combines stop server tool to apply a countdown timer before shutdown { StopServer.PrepareShutdown(); } } } } catch (Exception e) { Log.Out(string.Format("[SERVERTOOLS] Error in EventSchedule.Exec: {0}", e.Message)); } }
private static void Init(object sender, ElapsedEventArgs e) { if (!StopServer.Shutdown) { PersistentOperations.PlayerCheck(); if (Jail.IsEnabled) { Jail.StatusCheck(); } if (UnderWater.IsEnabled) { UnderWater.Exec(); } timer2Second++; if (timer2Second >= 2) { if (WorldRadius.IsEnabled) { WorldRadius.Exec(); } if (Flying.IsEnabled) { Flying.Exec(); } timer2Second = 0; } timer5Second++; if (timer5Second >= 5) { if (Zones.IsEnabled) { Zones.HostileCheck(); } if (PlayerStatCheck.IsEnabled) { PlayerStatCheck.PlayerStat(); } timer5Second = 0; } timer10Second++; if (timer10Second >= 10) { if (EntityCleanup.IsEnabled) { EntityCleanup.EntityCheck(); } timer10Second = 0; } timer60Second++; if (timer60Second >= 60) { if (Jail.IsEnabled && Jail.Jailed.Count > 0) { Jail.Clear(); } if (Mute.IsEnabled && Mute.Mutes.Count > 0) { Mute.Clear(); } if (BloodmoonWarrior.IsEnabled) { BloodmoonWarrior.Exec(); } timer60Second = 0; } if (WeatherVote.IsEnabled && WeatherVote.VoteOpen) { _weatherVote++; if (_weatherVote >= 60) { _weatherVote = 0; WeatherVote.VoteOpen = false; WeatherVote.ProcessWeatherVote(); } } if (RestartVote.IsEnabled && RestartVote.VoteOpen) { _restartVote++; if (_restartVote >= 60) { _restartVote = 0; RestartVote.VoteOpen = false; RestartVote.ProcessRestartVote(); } } if (MuteVote.IsEnabled && MuteVote.VoteOpen) { _muteVote++; if (_muteVote >= 60) { _muteVote = 0; MuteVote.VoteOpen = false; MuteVote.ProcessMuteVote(); } } if (KickVote.IsEnabled && KickVote.VoteOpen) { _kickVote++; if (_kickVote >= 60) { _kickVote = 0; KickVote.VoteOpen = false; KickVote.ProcessKickVote(); } } if (Lottery.IsEnabled && Lottery.OpenLotto) { _lottery++; if (_lottery == 3300) { Lottery.Alert(); } if (_lottery >= 3600) { _lottery = 0; Lottery.StartLotto(); } } else { _lottery = 0; } if (Hordes.IsEnabled) { _horde++; if (_horde >= 1200) { _horde = 0; Hordes.Exec(); } } else { _horde = 0; } if (NightAlert.IsEnabled) { _nightAlert++; if (_nightAlert >= NightAlert.Delay * 60) { _nightAlert = 0; NightAlert.Exec(); } } else { _nightAlert = 0; } if (Watchlist.IsEnabled) { _watchList++; if (_watchList >= Watchlist.Delay * 60) { _watchList = 0; Watchlist.CheckWatchlist(); } } else { _watchList = 0; } if (Bloodmoon.IsEnabled & Bloodmoon.Auto_Show) { if (Bloodmoon.Delay > 0) { _bloodmoon++; if (_bloodmoon >= Bloodmoon.Delay * 60) { _bloodmoon = 0; Bloodmoon.StatusCheck(); } } } else { _bloodmoon = 0; } if (PlayerLogs.IsEnabled & PlayerLogs.Delay > 0) { _playerLogs++; if (_playerLogs >= PlayerLogs.Delay) { _playerLogs = 0; PlayerLogs.Exec(); } } else { _playerLogs = 0; } if (StopServer.StopServerCountingDown) { _stopServerCountDown++; if (_stopServerCountDown == 60) { _stopServerCountDown = 0; _stopServerCount--; } if (_stopServerCount == 0) { _stopServerCountDown = 0; StopServer.StopServerCountingDown = false; StopServer.Stop(); } if (_stopServerCount == 1 && _stopServerCountDown == 0) { StopServer.StartShutdown3(); } if (_stopServerCount > 1 && _stopServerCountDown == 0) { StopServer.StartShutdown2(_stopServerCount); } if (StopServer.Kick_30_Seconds) { if (_stopServerCount == 1 && _stopServerCountDown == 30) { StopServer.NoEntry = true; StopServer.Kick30(); } } if (StopServer.Ten_Second_Countdown) { if (_stopServerCount == 1 && _stopServerCountDown == 50) { StopServer.StartShutdown4(); } if (_stopServerCount == 1 && _stopServerCountDown == 55) { StopServer.StartShutdown5(); } if (_stopServerCount == 1 && _stopServerCountDown == 56) { StopServer.StartShutdown6(); } if (_stopServerCount == 1 && _stopServerCountDown == 57) { StopServer.StartShutdown7(); } if (_stopServerCount == 1 && _stopServerCountDown == 58) { StopServer.StartShutdown8(); } if (_stopServerCount == 1 && _stopServerCountDown == 59) { StopServer.StartShutdown9(); } } } else { _stopServerCountDown = 0; _stopServerCount = 0; } if (AutoSaveWorld.IsEnabled & AutoSaveWorld.Delay > 0) { _autoSaveWorld++; if (_autoSaveWorld >= AutoSaveWorld.Delay * 60) { _autoSaveWorld = 0; AutoSaveWorld.Save(); } } else { _autoSaveWorld = 0; } if (AutoShutdown.IsEnabled && !AutoShutdown.Bloodmoon && !AutoShutdown.BloodmoonOver && !StopServer.StopServerCountingDown) { _autoShutdown++; if (!Event.Open && _autoShutdown >= AutoShutdown.Delay * 60) { _autoShutdown = 0; AutoShutdown.BloodmoonCheck(); } } else { _autoShutdown = 0; } if (AutoShutdown.Bloodmoon) { _autoShutdownBloodmoon++; if (_autoShutdownBloodmoon >= 150) { _autoShutdownBloodmoon = 0; AutoShutdown.BloodmoonCheck(); } } if (AutoShutdown.BloodmoonOver && !Event.Open) { _autoShutdownBloodmoonOver++; if (_autoShutdownBloodmoonOver == 1) { AutoShutdown.BloodmoonOverAlert(); } else if (_autoShutdownBloodmoonOver >= 900) { _autoShutdownBloodmoonOver = 0; AutoShutdown.BloodmoonOver = false; AutoShutdown.Shutdown(); } } if (InfoTicker.IsEnabled) { _infoTicker++; if (_infoTicker >= InfoTicker.Delay * 60) { _infoTicker = 0; InfoTicker.StatusCheck(); } } else { _infoTicker = 0; } if (Event.Invited) { _eventInvitation++; if (_eventInvitation >= 900) { _eventInvitation = 0; Event.Invited = false; Event.CheckOpen(); } } else { _eventInvitation = 0; } if (Event.Open) { _eventOpen++; if (_eventOpen == _eventTime / 2) { Event.HalfTime(); } if (_eventOpen == _eventTime - 300) { Event.FiveMin(); } if (_eventOpen >= _eventTime) { _eventOpen = 0; Event.EndEvent(); } } else { _eventOpen = 0; } if (RestartVote.Startup) { _restartVote++; if (_restartVote >= 1800) { RestartVote.Startup = false; } } else { _restartVote = 0; } if (Zones.IsEnabled & Zones.Reminder.Count > 0) { _zoneReminder++; if (_zoneReminder >= Zones.Reminder_Delay * 60) { _zoneReminder = 0; Zones.ReminderExec(); } } else { _zoneReminder = 0; } if (AutoBackup.IsEnabled) { _autoBackup++; if (_autoBackup >= AutoBackup.Delay * 60) { _autoBackup = 0; AutoBackup.Exec(); } } else { _autoBackup = 0; } if (BreakTime.IsEnabled) { _breakTime++; if (_breakTime >= BreakTime.Break_Time * 60) { _breakTime = 0; BreakTime.Exec(); } } else { _breakTime = 0; } if (Tracking.IsEnabled) { _tracking++; if (_tracking >= Tracking.Rate) { _tracking = 0; Tracking.Exec(); } } else { _tracking = 0; } if (InvalidItems.IsEnabled && InvalidItems.Check_Storage) { _invalidItems++; if (_invalidItems >= 300) { _invalidItems = 0; InvalidItems.CheckStorage(); } } else { _invalidItems = 0; } if (RealWorldTime.IsEnabled) { _realWorldTime++; if (_realWorldTime >= RealWorldTime.Delay * 60) { _realWorldTime = 0; RealWorldTime.Time(); } } else { _realWorldTime = 0; } } }
public static void Exec() { try { if (Schedule.Count > 0) { foreach (var entry in Schedule.ToArray()) { switch (entry.Key) { case "AutoBackup": if (DateTime.Now >= entry.Value) { autoBackup = ""; AutoBackup.SetDelay(); AutoBackup.Exec(); } continue; case "AutoSaveWorld": if (DateTime.Now >= entry.Value) { autoSaveWorld = ""; AutoSaveWorld.SetDelay(); AutoSaveWorld.Save(); } continue; case "Bloodmoon": if (DateTime.Now >= entry.Value) { bloodmoon = ""; Bloodmoon.SetDelay(); Bloodmoon.StatusCheck(); } continue; case "BreakTime": if (DateTime.Now >= entry.Value) { breakTime = ""; BreakTime.SetDelay(); BreakTime.Exec(); } continue; case "InfoTicker": if (DateTime.Now >= entry.Value) { infoTicker = ""; InfoTicker.SetDelay(); InfoTicker.Exec(); } continue; case "NightAlert": if (DateTime.Now >= entry.Value) { nightAlert = ""; NightAlert.SetDelay(); NightAlert.Exec(); } continue; case "PlayerLogs": if (DateTime.Now >= entry.Value) { playerLogs = ""; PlayerLogs.SetDelay(); PlayerLogs.Exec(); } continue; case "RealWorldTime": if (DateTime.Now >= entry.Value) { realWorldTime = ""; RealWorldTime.SetDelay(); RealWorldTime.Exec(); } continue; case "Shutdown": if (DateTime.Now >= entry.Value) { Remove("Shutdown"); Shutdown.PrepareShutdown(); } continue; case "WatchList": if (DateTime.Now >= entry.Value) { watchList = ""; WatchList.SetDelay(); WatchList.Exec(); } continue; case "Zones": if (DateTime.Now >= entry.Value) { zones = ""; Zones.SetDelay(); Zones.ReminderExec(); } continue; } } } } catch (Exception e) { Log.Out(string.Format("[SERVERTOOLS] Error in EventSchedule.Exec: {0}", e.Message)); } }