public static void PrepareShutdown()
 {
     if (Shutdown.Bloodmoon() || Event.Open)
     {
         EventSchedule.Add("Shutdown", DateTime.Now.AddMinutes(10));
         if (Event.Open && !Event.OperatorWarned)
         {
             ClientInfo _cInfo = ConsoleHelper.ParseParamIdOrName(Event.Operator);
             if (_cInfo != null)
             {
                 Event.OperatorWarned = true;
                 ChatHook.ChatMessage(_cInfo, Config.Chat_Response_Color + "A scheduled shutdown is set to begin but is on hold until the event ends" + "[-]", -1, Config.Server_Response_Name, EChatType.Whisper, null);
             }
         }
     }
     else
     {
         EventSchedule.Remove("Shutdown");
         Shutdown.Stop();
     }
 }
Ejemplo n.º 2
0
 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;
         }
     }
 }