private void InitiateVariables() { Globals.Rand = new Random(); Console.Title = Globals.ProtocolName; ServerSettings.Debug = Config.GetProperty("debug", false); ServerSettings.DisplayPacketErrors = Config.GetProperty("ShowNetworkErrors", false); #if DEBUG ServerSettings.Debug = true; #endif ServerSettings.MaxPlayers = Config.GetProperty("MaxPlayers", 10); ServerSettings.Seed = Config.GetProperty("Seed", "SharpMC"); ServerSettings.Motd = Config.GetProperty("motd", "A SharpMC Powered Server"); Globals.LevelManager = new LevelManager(LoadLevel()); Globals.LevelManager.AddLevel("nether", new NetherLevel("nether")); ServerSettings.OnlineMode = Config.GetProperty("Online-mode", false); Globals.ChatHandler = new Synchronized <ChatHandler>(new ChatHandler()); Globals.ServerKey = PacketCryptography.GenerateKeyPair(); Globals.ClientManager = new ClientManager(); Globals.ConsolePlayer = new Player(Globals.LevelManager.MainLevel) { Username = "******", Wrapper = new ClientWrapper(null), Uuid = Guid.NewGuid().ToString(), Gamemode = Gamemode.Spectator, }; Globals.ConsolePlayer.Wrapper.Player = Globals.ConsolePlayer; Globals.ConsolePlayer.IsOperator = true; Globals.MessageFactory = new MessageFactory(); Globals.PluginManager = new PluginManager(); Globals.ServerListener = new BasicListener(); OperatorLoader.LoadOperators(); }
public static void StopServer(string stopMsg = "Shutting down server...") { ConsoleFunctions.WriteInfoLine("Shutting down..."); Disconnect d = new Disconnect(null); d.Reason = new McChatMessage("§f" + stopMsg); BroadcastPacket(d); ConsoleFunctions.WriteInfoLine("Saving all player data..."); foreach (var player in LevelManager.GetAllPlayers()) { player.SavePlayer(); } OperatorLoader.SaveOperators(); ConsoleFunctions.WriteInfoLine("Disabling plugins..."); PluginManager.DisablePlugins(); ConsoleFunctions.WriteInfoLine("Saving config file..."); Config.SaveConfig(); ConsoleFunctions.WriteInfoLine("Saving chunks..."); LevelManager.SaveAllChunks(); ServerListener.StopListenening(); Environment.Exit(0); }