public static void Exit(bool restarting, string msg) { Player[] players = PlayerInfo.Online.Items; foreach (Player p in players) { p.save(); } foreach (Player p in players) { p.Leave(msg); } if (APIServer != null) { APIServer.Stop(); } if (InfoServer != null) { InfoServer.Stop(); } Player.connections.ForEach(p => p.Leave(msg)); Plugin.Unload(); if (listen != null) { listen.Close(); } try { IRC.Disconnect(restarting ? "Server is restarting." : "Server is shutting down."); } catch { } }
public static void LoadAllSettings() { // Unload custom plugins List <Plugin> plugins = new List <Plugin>(Plugin.all); foreach (Plugin p in plugins) { if (Plugin.core.Contains(p)) { continue; } Plugin.Unload(p, false); } ZSGame.Instance.infectMessages = ZSConfig.LoadInfectMessages(); Colors.Load(); Alias.Load(); BlockDefinition.LoadGlobal(); ImagePalette.Load(); SrvProperties.Load(); AuthService.ReloadDefault(); Group.LoadAll(); CommandPerms.Load(); Command.InitAll(); Block.SetBlocks(); AwardsList.Load(); PlayerAwards.Load(); Economy.Load(); WarpList.Global.Filename = "extra/warps.save"; WarpList.Global.Load(); CommandExtraPerms.Load(); ProfanityFilter.Init(); Team.LoadList(); ChatTokens.LoadCustom(); SrvProperties.FixupOldPerms(); CpeExtension.LoadDisabledList(); TextFile announcementsFile = TextFile.Files["Announcements"]; announcementsFile.EnsureExists(); announcements = announcementsFile.GetText(); // Reload custom plugins foreach (Plugin p in plugins) { if (Plugin.core.Contains(p)) { continue; } Plugin.Load(p, false); } OnConfigUpdatedEvent.Call(); }
/// <summary> /// Unload a plugin /// </summary> /// <param name="p">The plugin to unload</param> /// <param name="shutdown">Is this shutdown?</param> public static void Unload(Plugin p, bool shutdown) { try { p.Unload(shutdown); all.Remove(p); Server.s.Log(p.name + " was unloaded."); } catch { Server.s.Log("An error occurred while unloading a plugin."); } }
/// <summary> Unload a plugin </summary> /// <param name="p">The plugin to unload</param> /// <param name="shutdown">Is this shutdown?</param> public static void Unload(Plugin p, bool shutdown) { try { p.Unload(shutdown); Logger.Log(LogType.SystemActivity, p.name + " was unloaded."); } catch (Exception ex) { Logger.LogError(ex); Logger.Log(LogType.Warning, "An error occurred while unloading a plugin."); } all.Remove(p); }
public static bool Unload(Plugin p, bool auto) { bool success = true; try { p.Unload(auto); Logger.Log(LogType.SystemActivity, "Plugin {0} was unloaded.", p.name); } catch (Exception ex) { Logger.LogError("Error unloading plugin " + p.name, ex); success = false; } all.Remove(p); return(success); }
public static void Exit(bool AutoRestart) { Player[] players = PlayerInfo.Online.Items; foreach (Player p in players) { p.save(); } foreach (Player p in players) { string msg = AutoRestart ? "Server restarted. Sign in again and rejoin." : Server.shutdownMessage; p.LeaveServer(msg, msg); } if (APIServer != null) { APIServer.Stop(); } if (InfoServer != null) { InfoServer.Stop(); } //PlayerInfo.players.ForEach(delegate(Player p) { p.Kick("Server shutdown. Rejoin in 10 seconds."); }); Player.connections.ForEach( delegate(Player p) { string msg = AutoRestart ? "Server restarted. Sign in again and rejoin." : Server.shutdownMessage; p.LeaveServer(msg, msg); } ); Plugin.Unload(); if (listen != null) { listen.Close(); } try { GlobalChat.Disconnect(!AutoRestart ? "Server is shutting down." : "Server is restarting."); } catch { } try { IRC.Disconnect(!AutoRestart ? "Server is shutting down." : "Server is restarting."); } catch { } }