Ejemplo n.º 1
0
 static void Main(string[] args)
 {
     Console.WriteLine("");
     Console.WriteLine(" [i] EuroClash.Net - C# Emulator Improved by AlexBerescu");
     Console.WriteLine(" [i] Thanks to UltraPowa for Main Source & Packet Managenment");
     Console.WriteLine(" [i] Version 0.9A");
     Console.WriteLine("");
     Gateway g = new Gateway();
     PacketManager ph = new PacketManager();
     MessageManager dp = new MessageManager();
     ResourcesManager rm = new ResourcesManager();
     ObjectManager pm = new ObjectManager();
     dp.Start();
     ph.Start();
     g.Start();
     //ApiManager api = new ApiManager();
     ApiManager2 api2 = new ApiManager2();
     Core.Debugger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
     Logger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
     Console.WriteLine("");
     Console.WriteLine(" [i] Server successfully Loaded, you can login now!");
     Console.WriteLine(" [i] Automatic Server Status will be loaded shortly..");
     Console.WriteLine("");
     aTimer = new System.Timers.Timer(4000);
     aTimer.Elapsed += new ElapsedEventHandler(RunThis);
     aTimer.AutoReset = true;
     aTimer.Enabled = true;
     Gestiune abe = new Gestiune();
     Console.ReadLine();
 }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
        Console.WriteLine(
@"
888     888  .d8888b.   .d8888b.  
888     888 d88P  Y88b d88P  Y88b 
888     888 888    888 Y88b.      
888     888 888         ""Y888b.   
888     888 888            ""Y88b. 
888     888 888    888       ""888 
Y88b. .d88P Y88b  d88P Y88b  d88P 
 ""Y88888P""   ""Y8888P""   ""Y8888P""  
        ");
            Console.WriteLine("Ultrapowa Clash Server");
            Console.WriteLine("version 0.6.1.0");
            Console.WriteLine("www.ultrapowa.com");
            Console.WriteLine("");
            Console.WriteLine("Server starting...");
            Gateway g = new Gateway();
            PacketManager ph = new PacketManager();
            MessageManager dp = new MessageManager();
            ResourcesManager rm = new ResourcesManager();
            ObjectManager pm = new ObjectManager();
            dp.Start();
            ph.Start();
            g.Start();
            ApiManager api = new ApiManager();
            Debugger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
            Logger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
            Console.WriteLine("Server started, let's play Clash of Clans!");
            Thread.Sleep(Timeout.Infinite);
        }
Ejemplo n.º 3
0
 static void Main(string[] args)
 {
     Console.Title = "Ultrapowa Clash Server v0.6.1.5 Cannary 3 XV";
     Console.ForegroundColor = ConsoleColor.Red;
     Console.WriteLine(
     @"
     888     888  .d8888b.   .d8888b.
     888     888 d88P  Y88b d88P  Y88b
     888     888 888    888 Y88b.
     888     888 888         ""Y888b.
     888     888 888            ""Y88b.
     888     888 888    888       ""888
     Y88b. .d88P Y88b  d88P Y88b  d88P
      ""Y88888P""   ""Y8888P""   ""Y8888P""
     ");
     Console.WriteLine("Ultrapowa Clash Server");
     Console.WriteLine("version 0.6.1.5 Cannary 3 XV");
     Console.WriteLine("www.ultrapowa.com");
     Console.WriteLine("Get support by contacting Aidid on the forum");
     Console.WriteLine("");
     Console.WriteLine("Server starting...");
     Console.ResetColor();
     Gateway g = new Gateway();
     PacketManager ph = new PacketManager();
     MessageManager dp = new MessageManager();
     ResourcesManager rm = new ResourcesManager();
     ObjectManager pm = new ObjectManager();
     dp.Start();
     ph.Start();
     g.Start();
     Debugger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
     Logger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
     string hostName = Dns.GetHostName();
     string IP = Dns.GetHostByName(hostName).AddressList[0].ToString();
     if (Convert.ToBoolean(ConfigurationManager.AppSettings["apiManager"]))
     {
         ApiManager api = new ApiManager();
         Console.WriteLine("Server started on " + IP + ":9339 and let's play Clash of Clans!");
     }
     else
     {
         Console.WriteLine("Api Manager disable...");
         Console.WriteLine("Server started on " + IP + ":9339 and let's play Clash of Clans!");
     }
     if (Convert.ToBoolean(ConfigurationManager.AppSettings["consoleCommand"]))
     {
         Menu debug = new Menu();
     }
     else
     {
         Thread.Sleep(Timeout.Infinite);
     }
 }
Ejemplo n.º 4
0
 static void Main(string[] args)
 {
     Console.Title = "Ultrapowa Clash Server v0.6.1.1 - Beta 1";
     Console.ForegroundColor = ConsoleColor.Red;
     Console.WriteLine(
     @"
     888     888  .d8888b.   .d8888b.
     888     888 d88P  Y88b d88P  Y88b
     888     888 888    888 Y88b.
     888     888 888         ""Y888b.
     888     888 888            ""Y88b.
     888     888 888    888       ""888
     Y88b. .d88P Y88b  d88P Y88b  d88P
      ""Y88888P""   ""Y8888P""   ""Y8888P""
     ");
     Console.ForegroundColor = ConsoleColor.White;
     Console.WriteLine("Ultrapowa Clash Server");
     Console.WriteLine("version 0.6.1.1 - Beta 1");
     Console.WriteLine("www.ultrapowa.com");
     Console.WriteLine("www.gobelinland.fr");
     Console.WriteLine("Server starting...");
     string hostName = Dns.GetHostName();
     string myIP = Dns.GetHostEntry(hostName).AddressList[0].ToString();
     Gateway g = new Gateway();
     PacketManager ph = new PacketManager();
     MessageManager dp = new MessageManager();
     ResourcesManager rm = new ResourcesManager();
     ObjectManager pm = new ObjectManager();
     dp.Start();
     ph.Start();
     g.Start();
     if (Convert.ToBoolean(ConfigurationManager.AppSettings["apiManager"]))
     {
         ApiManager api = new ApiManager();
         Debugger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
         Logger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
         Console.WriteLine("Server started on " + myIP + ":9339 and let's play Clash of Clans!");
         Thread.Sleep(Timeout.Infinite);
     }
     else
     {
         Console.WriteLine("Api Manager disabled...");
         Debugger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
         Logger.SetLogLevel(Int32.Parse(ConfigurationManager.AppSettings["loggingLevel"]));
         Console.WriteLine("Server started on " + myIP + ":9339 and let's play Clash of Clans!");
         Thread.Sleep(Timeout.Infinite);
     }
 }
Ejemplo n.º 5
0
        private async void Save(object state)
        {
            if (!IsRunning)
            {
                IsRunning = true;

                m_vDatabase.Save(ResourcesManager.GetInMemoryLevels()).Wait();
                m_vDatabase.Save(ResourcesManager.GetInMemoryAlliances()).Wait();

                IsRunning = false;

                if (m_vTimerCanceled)
                {
                    TimerReference.Dispose();
                }
            }
        }
Ejemplo n.º 6
0
        public static void SendData()
        {
            var result = Http.Post(UCSPanel, new NameValueCollection
            {
                { "ApiKey", APIKey },
                { "OnlinePlayers", Convert.ToString(ResourcesManager.GetOnlinePlayers().Count) },
                { nameof(Status), Convert.ToString(Status) }
            }).Remove(0, 1);

            if (result == "OK")
            {
                Console.WriteLine("[UCS]    UCS Sent data successfully.");
            }
            else
            {
                Console.WriteLine("[UCS]    UCSList Server answer uncorrectly : " + result);
            }
        }
Ejemplo n.º 7
0
        public static Alliance GetAlliance(long allianceId)
        {
            Alliance alliance;

            if (ResourcesManager.InMemoryAlliancesContain(allianceId))
            {
                return(ResourcesManager.GetInMemoryAlliance(allianceId));
            }
            var alliancedb = m_vDatabase.GetAlliance(allianceId);

            alliancedb.Wait();

            alliance = alliancedb.Result;
            if (alliance != null)
            {
                ResourcesManager.AddAllianceInMemory(alliance);
                return(alliance);
            }
            return(null);
        }
Ejemplo n.º 8
0
        public static Alliance GetAlliance(long allianceId)
        {
            var alliance = default(Alliance);

            // Try to get alliance from memory first then db.
            // Could be improved.
            if (ResourcesManager.InMemoryAlliancesContain(allianceId))
            {
                return(ResourcesManager.GetInMemoryAlliance(allianceId));
            }

            alliance = DatabaseManager.Instance.GetAlliance(allianceId);

            if (alliance != null)
            {
                ResourcesManager.AddAllianceInMemory(alliance);
            }

            return(alliance);
        }
Ejemplo n.º 9
0
        public Loader()
        {
            // License Check
            //_LicenseChecker    = new LicenseChecker();

            // CSV Files and Logger
            _Logger = new Logger();

            _DirectoryChecker = new DirectoryChecker();

            _CSVManager = new CSVManager();


            // Network and Packets
            _ChatProcessor = new ChatProcessor();

            _ConnectionBlocker = new ConnectionBlocker();

            if (Utils.ParseConfigBoolean("UseWebAPI"))
            {
                _API = new API();
            }

            // Core
            _ResourcesManager = new ResourcesManager();

            _ObjectManager = new ObjectManager();

            _CommandFactory = new CommandFactory();

            _MessageFactory = new MessageFactory();

            // Optimazions
            _MemThread = new MemoryThread();

            // User
            _Parser = new ParserThread();

            // Creates a new Socket
            _Gateway = new Gateway();
        }
Ejemplo n.º 10
0
        //private UDP _Server                         = null;

        /// <summary>
        /// Initializes a new instance of the <see cref="Loader"/> class.
        /// </summary>
        public Loader()
        {
            Performance Perf = new Performance();

            // Safe Start..
            this._Launcher = new Launcher();

            // Core
            this._MessageFactory   = new MessageFactory();
            this._CommandFactory   = new Command_Factory();
            this._ResourcesManager = new ResourcesManager();
            this._Loggers          = new Loggers();

            // Databases
            //this._Redis             = new Redis();
            //this._MySQL             = new MySQL_Backup();

            // User-Side
            //this._EventsHandler     = new EventsHandler();
            //this._Parser            = new Parser();

            // Files
            //this._Fingerprint       = new Fingerprint();
            //this._CSV               = new CSV();
            this._Home = new Home();

            // Optimizations
            this._Checker = new Checker();

            // Network
            // this._WebAPI            = new WebAPI();
            this._Gateway = new Gateway();
            // this._Server            = new UDP();

            // Test
            //new Test();

            Console.WriteLine($"Servidor iniciado en {Perf.Stop().Milliseconds} Milisegundos.\n");
        }
Ejemplo n.º 11
0
        /*public static void LoadAllAlliancesFromDB()
         * {
         *  ResourcesManager.AddAllianceInMemory(m_vDatabase.GetAllAlliances());
         * }*/

        public static Alliance GetAlliance(long allianceId)
        {
            Alliance alliance;

            if (ResourcesManager.InMemoryAlliancesContain(allianceId))
            {
                return(ResourcesManager.GetInMemoryAlliance(allianceId));
            }
            else
            {
                alliance = m_vDatabase.GetAlliance(allianceId);
                if (alliance != null)
                {
                    ResourcesManager.AddAllianceInMemory(alliance);
                }
                else
                {
                    return(null);
                }
                return(alliance);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        ///     This function return the data of a random player, in memory.
        /// </summary>
        /// <returns>Random player data.</returns>
        public static Level GetRandomOnlinePlayer()
        {
            var index = m_vRandomSeed.Next(0, ResourcesManager.GetInMemoryLevels().Count); //accès concurrent KO

            return(ResourcesManager.GetInMemoryLevels().ElementAt(index));
        }
Ejemplo n.º 13
0
 private static void SaveRedis(object state)
 {
     m_vDatabase.Save(ResourcesManager.m_vInMemoryLevels.Values.ToList(), Save.Redis);
     m_vDatabase.Save(ResourcesManager.GetInMemoryAlliances(), Save.Redis);
 }
Ejemplo n.º 14
0
        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();
                }
            }
        }
Ejemplo n.º 15
0
        private void Handle(IAsyncResult result)
        {
            HttpListener        listener = (HttpListener)result.AsyncState;
            HttpListenerContext context  = listener.EndGetContext(result);


            HttpListenerRequest request = context.Request;
            // Obtain a response object.
            HttpListenerResponse response = context.Response;
            // Construct a response.
            string responseString = "<HTML><BODY><PRE>";

            /*
             * responseString += "Active Connections: ";
             * int connectedUsers = 0;
             * foreach(var client in ResourcesManager.GetConnectedClients())
             * {
             *  var socket = client.Socket;
             *  if(socket != null)
             *  {
             *      try
             *      {
             *          bool part1 = socket.Poll(1000, SelectMode.SelectRead);
             *          bool part2 = (socket.Available == 0);
             *          if (!(part1 && part2))
             *              connectedUsers++;
             *      }
             *      catch(Exception){}
             *  }
             * }
             * responseString += connectedUsers + "\n";
             */
            responseString += "Established Connections: " + ResourcesManager.GetConnectedClients().Count + "\n";

            responseString += "<details><summary>";
            responseString += "In Memory Levels: " + ResourcesManager.GetInMemoryLevels().Count + "</summary>";
            foreach (var account in ResourcesManager.GetInMemoryLevels())
            {
                responseString += "    " + account.GetPlayerAvatar().GetId() + ", " + account.GetPlayerAvatar().GetAvatarName() + " \n";
            }
            responseString += "</details>";

            responseString += "<details><summary>";
            responseString += "Online Players: " + ResourcesManager.GetOnlinePlayers().Count + "</summary>";
            foreach (var account in ResourcesManager.GetOnlinePlayers())
            {
                responseString += "    " + account.GetPlayerAvatar().GetId() + ", " + account.GetPlayerAvatar().GetAvatarName() + " \n";
            }
            responseString += "</details>";

            responseString += "<details><summary>";
            responseString += "In Memory Alliances: " + ObjectManager.GetInMemoryAlliances().Count + "</summary>";
            foreach (var alliance in ObjectManager.GetInMemoryAlliances())
            {
                responseString += "    " + alliance.GetAllianceId() + ", " + alliance.GetAllianceName() + " \n";
            }
            responseString += "</details>";

            responseString += "</PRE></BODY></HTML>";
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            // Get a response stream and write the response to it.
            response.ContentLength64 = buffer.Length;
            System.IO.Stream output = response.OutputStream;
            output.Write(buffer, 0, buffer.Length);
            // You must close the output stream.
            output.Close();
        }
Ejemplo n.º 16
0
        public Menu()
        {
            while (true)
            {
                Console.WriteLine("");
                string line = Console.ReadLine();
                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")
                {
                    AllianceMailStreamEntry 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....");
                    System.Diagnostics.Process.Start(@"tools\ucs-restart.bat");
                }
                else if (line == "/status")
                {
                    string hostName = Dns.GetHostName();
                    string IPM      = Dns.GetHostByName(hostName).AddressList[0].ToString();
                    Console.WriteLine("Server IP : " + IPM + " on port 9339");
                    Console.WriteLine("Players Online : " + ResourcesManager.GetOnlinePlayers().Count);
                    Console.WriteLine("Starting Gold : " + Int32.Parse(ConfigurationManager.AppSettings["StartingGold"]));
                    Console.WriteLine("Starting Elixir : " + Int32.Parse(ConfigurationManager.AppSettings["StartingElixir"]));
                    Console.WriteLine("Starting Dark Elixir : " + Int32.Parse(ConfigurationManager.AppSettings["StartingDarkElixir"]));
                    Console.WriteLine("Starting Gems : " + Int32.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");
                    AllianceMailStreamEntry 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")
                {
                    Console.WriteLine("");
                    Console.WriteLine("Available commands :");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/restart - This commands restart server and sending online player info about it.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/shutdown - This commands fully close the server with message after five minutes.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/status - This commands show informations about the server.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("/clear - Clean the emulator screen");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/help - This commands show a list of available commands.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/sysinfo - This command will send the current Server Status to all online players.");
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else
                {
                    Console.WriteLine("");
                    Console.WriteLine("Available commands :");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/restart - This commands restart server and sending online player info about it.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/shutdown - This commands fully close the server with message after five minutes.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/status - This commands show informations about the server.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("/clear - Clean the emulator screen");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/help - This commands show a list of available commands.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/sysinfo - This command will send the current Server Status to all online players.");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
        }
Ejemplo n.º 17
0
 private static async void SaveMysql(object state)
 {
     m_vDatabase.Save(ResourcesManager.m_vInMemoryLevels.Values.ToList(), Save.Mysql).Wait();
     m_vDatabase.Save(ResourcesManager.GetInMemoryAlliances(), Save.Mysql).Wait();
 }
Ejemplo n.º 18
0
 private void Handler(string type)
 {
     try
     {
         if (type == "inmemclans")
         {
             this.jsonapp = Convert.ToString(ObjectManager.GetInMemoryAlliances().Count);
         }
         else if (type == "inmemplayers")
         {
             this.jsonapp = Convert.ToString(ResourcesManager.GetInMemoryLevels().Count);
         }
         else if (type == "onlineplayers")
         {
             this.jsonapp = Convert.ToString(ResourcesManager.GetOnlinePlayers().Count);
         }
         else if (type == "totalclients")
         {
             this.jsonapp = Convert.ToString(ResourcesManager.GetConnectedClients().Count);
         }
         else if (type == "all")
         {
             JsonApi jsonApi = new JsonApi
             {
                 UCS = new Dictionary <string, string>
                 {
                     {
                         "PatchingServer",
                         ConfigurationManager.AppSettings["patchingServer"]
                     },
                     {
                         "Maintenance",
                         ConfigurationManager.AppSettings["maintenanceMode"]
                     },
                     {
                         "MaintenanceTimeLeft",
                         ConfigurationManager.AppSettings["maintenanceTimeLeft"]
                     },
                     {
                         "ClientVersion",
                         ConfigurationManager.AppSettings["clientVersion"]
                     },
                     {
                         "ServerVersion",
                         Assembly.GetExecutingAssembly().GetName().Version.ToString()
                     },
                     {
                         "OnlinePlayers",
                         Convert.ToString(ResourcesManager.GetOnlinePlayers().Count)
                     },
                     {
                         "InMemoryPlayers",
                         Convert.ToString(ResourcesManager.GetInMemoryLevels().Count)
                     },
                     {
                         "InMemoryClans",
                         Convert.ToString(ObjectManager.GetInMemoryAlliances().Count)
                     },
                     {
                         "TotalConnectedClients",
                         Convert.ToString(ResourcesManager.GetConnectedClients().Count)
                     }
                 }
             };
             this.jsonapp = JsonConvert.SerializeObject(jsonApi);
             this.mime    = "application/json";
         }
         else if (type == "ram")
         {
             this.jsonapp = Performances.GetUsedMemory();
         }
         else
         {
             this.jsonapp = "OK";
         }
     }
     catch (Exception arg)
     {
         this.jsonapp = "An exception occured in UCS : \n" + arg;
     }
 }
Ejemplo n.º 19
0
 public static List <Alliance> GetInMemoryAlliances()
 {
     return(ResourcesManager.GetInMemoryAlliances());
 }
Ejemplo n.º 20
0
 public static List <Alliance> GetInMemoryAlliances() => ResourcesManager.GetInMemoryAlliances();
Ejemplo n.º 21
0
        public static Level GetRandomPlayerFromAll()
        {
            int index = new Random().Next(0, ResourcesManager.GetAllPlayerIds().Count);

            return(ResourcesManager.GetPlayer(ResourcesManager.GetAllPlayerIds()[index]));
        }
Ejemplo n.º 22
0
        /// <summary>
        ///     This function return the data of a random player in database.
        /// </summary>
        /// <returns>Data of a random player.</returns>
        public static Level GetRandomPlayerFromAll()
        {
            var index = m_vRandomSeed.Next(0, ResourcesManager.GetAllPlayerIds().Count); //accès concurrent KO

            return(ResourcesManager.GetPlayer(ResourcesManager.GetAllPlayerIds()[index]));
        }
Ejemplo n.º 23
0
        public static Level GetRandomPlayerFromAll()
        {
            int index = ObjectManager.m_vRandomSeed.Next(0, ResourcesManager.GetAllPlayerIds().Count);

            return(ResourcesManager.GetPlayer(ResourcesManager.GetAllPlayerIds()[index], false));
        }
Ejemplo n.º 24
0
        public static Level GetRandomOnlinePlayer()
        {
            int index = new Random().Next(0, ResourcesManager.GetInMemoryLevels().Count);

            return(ResourcesManager.GetInMemoryLevels().ElementAt(index));
        }
Ejemplo n.º 25
0
 public static void Load100AlliancesFromDB()
 {
     ResourcesManager.AddAllianceInMemory(m_vDatabase.Get100Alliances());
 }
Ejemplo n.º 26
0
 public static void RemoveInMemoryAlliance(long id)
 {
     ResourcesManager.RemoveAllianceFromMemory(id);
 }
Ejemplo n.º 27
0
        private void Handle(IAsyncResult result)
        {
            var direction = "";
            var requestip = (HttpWebRequest)WebRequest.Create("http://checkip.dyndns.org/");

            requestip.UserAgent =
                "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2573.0 Safari/537.36";
            requestip.Method  = "GET";
            requestip.Referer = "http://ultrapowa.com/";
            using (var stream = new StreamReader(requestip.GetResponse().GetResponseStream()))
                direction = stream.ReadToEnd();

            //Search for the ip in the html
            var first = direction.IndexOf("Address: ") + 9;
            var last  = direction.LastIndexOf("</body>");

            direction = direction.Substring(first, last - first);
            var listener = (HttpListener)result.AsyncState;
            var context  = listener.EndGetContext(result);

            var request = context.Request;

            // Obtain a response object.
            var response = context.Response;

            // Construct a response.
            var responseString = "<HTML><BODY><PRE>";

            responseString += "Active Connections: ";
            var connectedUsers = 0;

            foreach (var client in ResourcesManager.GetConnectedClients())
            {
                var socket = client.Socket;
                if (socket != null)
                {
                    try
                    {
                        var part1 = socket.Poll(1000, SelectMode.SelectRead);
                        var part2 = socket.Available == 0;
                        if (!(part1 && part2))
                        {
                            connectedUsers++;
                        }
                    }
                    catch (Exception ex)
                    {
                        Debugger.WriteLine("Error in ApiManager : ", ex, 4, ConsoleColor.Red);
                    }
                }
            }
            responseString += connectedUsers + "\n";

            responseString += "Established Connections: " + ResourcesManager.GetConnectedClients().Count + "\n";

            responseString += "<details><summary>";
            responseString += "In Memory Levels: " + ResourcesManager.GetInMemoryLevels().Count + "</summary>";
            foreach (var account in ResourcesManager.GetInMemoryLevels())
            {
                responseString += "    " + account.GetPlayerAvatar().GetId() + ", " +
                                  account.GetPlayerAvatar().GetAvatarName() + " \n";
            }
            responseString += "</details>";

            responseString += "<details><summary>";
            responseString += "Online Players: " + ResourcesManager.GetOnlinePlayers().Count + "</summary>";
            foreach (var account in ResourcesManager.GetOnlinePlayers())
            {
                responseString += "    " + account.GetPlayerAvatar().GetId() + ", " +
                                  account.GetPlayerAvatar().GetAvatarName() + " \n";
            }
            responseString += "</details>";

            responseString += "<details><summary>";
            responseString += "In Memory Alliances: " + ObjectManager.GetInMemoryAlliances().Count + "</summary>";
            foreach (var alliance in ObjectManager.GetInMemoryAlliances())
            {
                responseString += "    " + alliance.GetAllianceId() + ", " + alliance.GetAllianceName() + " \n";
            }
            responseString += "</details>";

            var hostName = Dns.GetHostName();
            var LIP      = Dns.GetHostByName(hostName).AddressList[0].ToString();

            responseString += "<center><p>Current local ip: " + LIP + "</p></center>";
            responseString += "<center><p>Current public ip: " + direction + "</p></center>";
            responseString +=
                "<center><img src='https://d14.usercdn.com/i/02212/ea18nj5uxcll.png' style='width: 25%; height: 50%'></img></center></PRE></BODY></HTML>";
            var buffer = Encoding.UTF8.GetBytes(responseString);

            // Get a response stream and write the response to it.
            response.ContentLength64 = buffer.Length;
            var output = response.OutputStream;

            output.Write(buffer, 0, buffer.Length);

            // You must close the output stream.
            output.Close();
        }