private static void InitUCS() { if (!Directory.Exists("logs")) { Console.WriteLine("Folder \"logs/\" does not exist. Let me create one.."); Directory.CreateDirectory("logs"); } if (Convert.ToBoolean(Utils.parseConfigString("UCSList"))) { Ucslist.Start(); } new ResourcesManager(); new ObjectManager(); new Gateway().Start(); if (Convert.ToBoolean(Utils.parseConfigString("apiManager"))) { new ApiManager(); } if (Convert.ToBoolean(Utils.parseConfigString("apiManagerPro"))) { if (ConfigurationManager.AppSettings["ApiKey"] == "ucs") { var ch = Utils.GenerateApi(); ConfigurationManager.AppSettings.Set("ApiKey", ch); Console.WriteLine("Your Random API key : {0}", ch); } var ws = new ApiManagerPro(ApiManagerPro.SendResponse, "http://+:" + Utils.ParseConfigInt("proDebugPort") + "/" + Utils.parseConfigString("ApiKey") + "/"); Console.WriteLine("Your API key : {0}", Utils.parseConfigString("ApiKey")); ws.Run(); } Debugger.SetLogLevel(Utils.ParseConfigInt("loggingLevel")); Logger.SetLogLevel(Utils.ParseConfigInt("loggingLevel")); InitProgramThreads(); if (Utils.ParseConfigInt("loggingLevel") >= 5) { Debugger.WriteLine("\t", null, 5); Debugger.WriteLine("Played ID's:", null, 5, ConsoleColor.Cyan); ResourcesManager.GetAllPlayerIds() .ForEach(id => Debugger.WriteLine("\t" + id, null, 5, ConsoleColor.Cyan)); Debugger.WriteLine("\t", null, 5); } Console.WriteLine("Server started on port " + Port + ". Let's play Clash of Clans!"); if (Convert.ToBoolean(Utils.parseConfigString("consoleCommand"))) { new Menu(); } else { Application.Run(new UCSManager()); } }
public Menu() { while (true) { Console.WriteLine(""); var line = Console.ReadLine(); if (line == "/startx") { m_vMaintance = true; Application.Run(new UCSManager()); } else if (line == "/stopucslist") { Ucslist.Stop(); } else if (line == "/reloadfilter") { Console.WriteLine("Filter Has Been Reload"); Message.ReloadChatFilterList(); } else if (line == "/shutdown") { foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers()) { var p = new ShutdownStartedMessage(onlinePlayer.GetClient()); p.SetCode(5); PacketManager.ProcessOutgoingPacket(p); } Console.WriteLine("Message has been send to the user"); } else if (line == "/clear") { Console.Clear(); } else if (line == "/restart") { var mail = new AllianceMailStreamEntry(); mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); mail.SetSenderId(0); mail.SetSenderAvatarId(0); mail.SetSenderName("System Manager"); mail.SetIsNew(0); mail.SetAllianceId(0); mail.SetAllianceBadgeData(0); mail.SetAllianceName("Legendary Administrator"); mail.SetMessage("System is about to restart in a few moments."); mail.SetSenderLevel(500); mail.SetSenderLeagueId(22); foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers()) { var pm = new GlobalChatLineMessage(onlinePlayer.GetClient()); var ps = new ShutdownStartedMessage(onlinePlayer.GetClient()); var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient()); ps.SetCode(5); p.SetAvatarStreamEntry(mail); pm.SetChatMessage("System is about to restart in a few moments."); pm.SetPlayerId(0); pm.SetLeagueId(22); pm.SetPlayerName("System Manager"); PacketManager.ProcessOutgoingPacket(p); PacketManager.ProcessOutgoingPacket(ps); PacketManager.ProcessOutgoingPacket(pm); } Console.WriteLine("System Restarting...."); Program.RestartProgram(); } else if (line == "/update") { var downloadUrl = ""; Version newVersion = null; var aboutUpdate = ""; var xmlUrl = "https://www.flamewall.net/ucs/system.xml"; XmlTextReader reader = null; try { reader = new XmlTextReader(xmlUrl); reader.MoveToContent(); var elementName = ""; if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "appinfo")) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { elementName = reader.Name; } else { if ((reader.NodeType == XmlNodeType.Text) && reader.HasValue) { switch (elementName) { case "version": newVersion = new Version(reader.Value); break; case "url": downloadUrl = reader.Value; break; case "about": aboutUpdate = reader.Value; break; } } } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (reader != null) { reader.Close(); } } var applicationVersion = Assembly.GetExecutingAssembly().GetName().Version; if (applicationVersion.CompareTo(newVersion) < 0) { var str = string.Format( "New version found!\nYour version: {0}.\nNewest version: {1}. \nAdded in this version: {2}. ", applicationVersion, newVersion, aboutUpdate); if (DialogResult.No != MessageBox.Show(str + "\nWould you like to download this update?", "Check for updates", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { try { Process.Start(downloadUrl); } catch {} return; } ; } else { MessageBox.Show("Your version: " + applicationVersion + " is up to date.", "Check for Updates", MessageBoxButtons.OK, MessageBoxIcon.None); } } else if (line == "/status") { var hostName = Dns.GetHostName(); var IPM = Dns.GetHostByName(hostName).AddressList[0].ToString(); Console.WriteLine("Server IP : " + IPM + " on port 9339"); Console.WriteLine("Online Player : " + ResourcesManager.GetOnlinePlayers().Count); Console.WriteLine("Connected Player : " + ResourcesManager.GetConnectedClients().Count); Console.WriteLine("Starting Gold : " + int.Parse(ConfigurationManager.AppSettings["StartingGold"])); Console.WriteLine("Starting Elixir : " + int.Parse(ConfigurationManager.AppSettings["StartingElixir"])); Console.WriteLine("Starting Dark Elixir : " + int.Parse(ConfigurationManager.AppSettings["StartingDarkElixir"])); Console.WriteLine("Starting Gems : " + int.Parse(ConfigurationManager.AppSettings["StartingGems"])); Console.WriteLine("CoC Version : " + ConfigurationManager.AppSettings["ClientVersion"]); if (Convert.ToBoolean(ConfigurationManager.AppSettings["useCustomPatch"])) { Console.WriteLine("Patch : Active"); Console.WriteLine("Patching Server : " + ConfigurationManager.AppSettings["patchingServer"]); } else { Console.WriteLine("Patch : Disable"); } if (Convert.ToBoolean(ConfigurationManager.AppSettings["maintenanceMode"])) { Console.WriteLine("Maintance Mode : Active"); Console.WriteLine("Maintance time : " + Convert.ToInt32(ConfigurationManager.AppSettings["maintenanceTimeleft"]) + " Seconds"); } else { Console.WriteLine("Maintance Mode : Disable"); } } else if (line == "/sysinfo") { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Server Status is now sent to all online players"); var mail = new AllianceMailStreamEntry(); mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds); mail.SetSenderId(0); mail.SetSenderAvatarId(0); mail.SetSenderName("System Manager"); mail.SetIsNew(0); mail.SetAllianceId(0); mail.SetAllianceBadgeData(0); mail.SetAllianceName("Legendary Administrator"); mail.SetMessage("Latest Server Status:\nConnected Players:" + ResourcesManager.GetConnectedClients().Count + "\nIn Memory Alliances:" + ObjectManager.GetInMemoryAlliances().Count + "\nIn Memory Levels:" + ResourcesManager.GetInMemoryLevels().Count); mail.SetSenderLeagueId(22); mail.SetSenderLevel(500); foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers()) { var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient()); var pm = new GlobalChatLineMessage(onlinePlayer.GetClient()); pm.SetChatMessage("Our current Server Status is now sent at your mailbox!"); pm.SetPlayerId(0); pm.SetLeagueId(22); pm.SetPlayerName("System Manager"); p.SetAvatarStreamEntry(mail); PacketManager.ProcessOutgoingPacket(p); PacketManager.ProcessOutgoingPacket(pm); } Console.ForegroundColor = ConsoleColor.White; } else if (line == "/help") { MenuList(); } else { MenuList(); } } }