Esempio n. 1
0
        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 {
            }
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        /// <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."); }
        }
Esempio n. 4
0
 /// <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);
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 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 { }
 }
Esempio n. 7
0
        /// <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."); }
        }