Beispiel #1
0
        public Loader()
        {
            // CSV Files and Logger
            this.Logger           = new Logger();
            this.DirectoryChecker = new DirectoryChecker();
            this.CsvManager       = new CSVManager();

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


            // Core
            this.LicenseChecker   = new LicenseChecker();
            this.ResourcesManager = new ResourcesManager();
            this.ObjectManager    = new ObjectManager();
            this.Events           = new EventsHandler();
            if (Constants.UseCacheServer)
            {
                this.Redis = new Redis();
            }


            this.CommandFactory = new CommandFactory();

            this.MessageFactory = new MessageFactory();

            // Optimazions
            this.MemThread = new MemoryThread();

            // User
            this.Parser = new ParserThread();
        }
        public Loader()
        {
            // CSV Files and Logger
            Logger           = new Logger();
            DirectoryChecker = new DirectoryChecker();
            Csv      = new CSVManager();
            Settings = new Settings.Settings();

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

            //Core
            ResourcesManager = new ResourcesManager();
            ObjectManager    = new ObjectManager();
            Events           = new EventsHandler();
            if (Constants.UseCacheServer)
            {
                Redis = new Redis();
            }

            CommandFactory = new CommandFactory();
            MessageFactory = new MessageFactory();

            // Optimazions
            MemThread = new MemoryThread();

            // User
            Parser = new ParserThread();
        }
Beispiel #3
0
        public static void Main(string[] args)
        {
            Thread T = new Thread(() =>
            {
                UCSControl.WelcomeMessage();
                CheckThread.Start();
                MemoryThread.Start();
                NetworkThread.Start();
                ParserThread.Start();
            }); T.Start();

            T.Priority = ThreadPriority.Highest;
        }
        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();
        }
Beispiel #5
0
        public override void Process(Level a)
        {
            if (Client.State == ClientState.Login)
            {
                if (Constants.IsRc4)
                {
                    Client.ClientSeed = Seed;
                    new RC4SessionKey(Client).Send();
                }

                if (ParserThread.GetMaintenanceMode() == true)
                {
                    var p = new LoginFailedMessage(Client);
                    p.SetErrorCode(10);
                    p.RemainingTime(ParserThread.GetMaintenanceTime());
                    p.SetMessageVersion(8);
                    p.Send();
                    return;
                }

                if (Constants.IsPremiumServer == false)
                {
                    if (ResourcesManager.GetOnlinePlayers().Count >= 100)
                    {
                        var p = new LoginFailedMessage(Client);
                        p.SetErrorCode(11);
                        p.SetReason("This is a free Version of UCS. Please Upgrade to Premium on https://ultrapowa.com/forum");
                        p.Send();
                        return;
                    }
                }

                int time = Convert.ToInt32(ConfigurationManager.AppSettings["maintenanceTimeleft"]);
                if (time != 0)
                {
                    var p = new LoginFailedMessage(Client);
                    p.SetErrorCode(10);
                    p.RemainingTime(time);
                    p.SetMessageVersion(8);
                    p.Send();
                    return;
                }

                if (ConfigurationManager.AppSettings["CustomMaintenance"] != string.Empty)
                {
                    var p = new LoginFailedMessage(Client);
                    p.SetErrorCode(10);
                    p.SetReason(ConfigurationManager.AppSettings["CustomMaintenance"]);
                    p.Send();
                    return;
                }

                var cv2 = ConfigurationManager.AppSettings["ClientVersion"].Split('.');
                var cv  = ClientVersion.Split('.');
                if (cv[0] != cv2[0] || cv[1] != cv2[1])
                {
                    var p = new LoginFailedMessage(Client);
                    p.SetErrorCode(8);
                    p.SetUpdateURL(Convert.ToString(ConfigurationManager.AppSettings["UpdateUrl"]));
                    p.Send();
                    return;
                }

                if (Convert.ToBoolean(ConfigurationManager.AppSettings["useCustomPatch"]) &&
                    MasterHash != ObjectManager.FingerPrint.sha)
                {
                    var p = new LoginFailedMessage(Client);
                    p.SetErrorCode(7);
                    p.SetResourceFingerprintData(ObjectManager.FingerPrint.SaveToJson());
                    p.SetContentURL(ConfigurationManager.AppSettings["patchingServer"]);
                    p.SetUpdateURL(ConfigurationManager.AppSettings["UpdateUrl"]);
                    p.Send();
                    return;
                }
                CheckClient();
            }
        }
Beispiel #6
0
        internal override void Process()
        {
            try
            {
                if (this.Device.PlayerState == State.LOGIN)
                {
                    if (Constants.LicensePlanID == 3)
                    {
                        if (ResourcesManager.m_vOnlinePlayers.Count >= Constants.MaxOnlinePlayers)
                        {
                            new LoginFailedMessage(Device)
                            {
                                ErrorCode = 12,
                                Reason    = "Sorry the Server is currently full! \n\nPlease try again in a few Minutes.\n"
                            }.Send();
                            return;
                        }
                    }

                    if (ParserThread.GetMaintenanceMode())
                    {
                        new LoginFailedMessage(Device)
                        {
                            ErrorCode     = 10,
                            RemainingTime = ParserThread.GetMaintenanceTime(),
                            Version       = 8
                        }.Send();
                        return;
                    }

                    if (Constants.LicensePlanID < 1)
                    {
                        if (ResourcesManager.m_vOnlinePlayers.Count >= 350)
                        {
                            new LoginFailedMessage(Device)
                            {
                                ErrorCode = 11,
                                Reason    = "This is a Free Version of UCS. Please Upgrade on https://ultrapowa.com/forum"
                            }.Send();
                            return;
                        }
                    }
                    else if (Constants.LicensePlanID < 2)
                    {
                        if (ResourcesManager.m_vOnlinePlayers.Count >= 700)
                        {
                            new LoginFailedMessage(Device)
                            {
                                ErrorCode = 11,
                                Reason    =
                                    "This is a Pro Version of UCS. Please Upgrade to Ultra on https://ultrapowa.com/forum"
                            }.Send();
                            return;
                        }
                    }

                    int time = Convert.ToInt32(ConfigurationManager.AppSettings["maintenanceTimeleft"]);
                    if (time != 0)
                    {
                        new LoginFailedMessage(Device)
                        {
                            ErrorCode     = 10,
                            RemainingTime = time,
                            Version       = 8
                        }.Send();
                        return;
                    }

                    if (ConfigurationManager.AppSettings["CustomMaintenance"] != string.Empty)
                    {
                        new LoginFailedMessage(Device)
                        {
                            ErrorCode = 10,
                            Reason    = Utils.ParseConfigString("CustomMaintenance")
                        }.Send();
                        return;
                    }

                    string[] cv2 = ConfigurationManager.AppSettings["ClientVersion"].Split('.');
                    string[] cv  = ClientVersion.Split('.');
                    if (cv[0] != cv2[0] || cv[1] != cv2[1] || cv[2] != cv2[2])
                    {
                        new LoginFailedMessage(Device)
                        {
                            ErrorCode = 8,
                            UpdateUrl = Utils.ParseConfigString("UpdateUrl")
                        }.Send();
                        return;
                    }

                    if (Convert.ToBoolean(ConfigurationManager.AppSettings["useCustomPatch"]) &&
                        MasterHash != ObjectManager.FingerPrint.sha)
                    {
                        new LoginFailedMessage(Device)
                        {
                            ErrorCode = 7,
                            ResourceFingerprintData = ObjectManager.FingerPrint.SaveToJson(),
                            ContentUrl = Utils.ParseConfigString("patchingServer"),
                            UpdateUrl  = Utils.ParseConfigString("UpdateUrl")
                        }.Send();
                        return;
                    }
                    CheckClient();
                }
            }
            catch
            {
            }
        }
        public override void Process(Level a)
        {
            try
            {
                if (Client.State == ClientState.Login)
                {
                    if (Constants.IsRc4)
                    {
                        Client.ClientSeed = Seed;
                        PacketProcessor.Send(new RC4SessionKey(Client));
                    }

                    if (Constants.LicensePlanID == 3)
                    {
                        if (ResourcesManager.GetOnlinePlayers().Count >= Constants.MaxOnlinePlayers)
                        {
                            LoginFailedMessage p = new LoginFailedMessage(Client);
                            p.SetErrorCode(12);
                            p.SetReason("Sorry the Server is currently full! \n\nPlease try again in a few Minutes.\n");
                            PacketProcessor.Send(p);
                            return;
                        }
                    }

                    if (ParserThread.GetMaintenanceMode())
                    {
                        LoginFailedMessage p = new LoginFailedMessage(Client);
                        p.SetErrorCode(10);
                        p.RemainingTime(ParserThread.GetMaintenanceTime());
                        p.SetMessageVersion(8);
                        PacketProcessor.Send(p);
                        return;
                    }

                    if (Constants.LicensePlanID < 1)
                    {
                        if (ResourcesManager.GetOnlinePlayers().Count >= 350)
                        {
                            LoginFailedMessage p = new LoginFailedMessage(Client);
                            p.SetErrorCode(11);
                            p.SetReason("This is a Free Version of UCS. Please Upgrade on https://ultrapowa.com/forum");
                            PacketProcessor.Send(p);
                            return;
                        }
                    }
                    else if (Constants.LicensePlanID < 2)
                    {
                        if (ResourcesManager.GetOnlinePlayers().Count >= 700)
                        {
                            LoginFailedMessage p = new LoginFailedMessage(Client);
                            p.SetErrorCode(11);
                            p.SetReason("This is a Pro Version of UCS. Please Upgrade to Ultra on https://ultrapowa.com/forum");
                            PacketProcessor.Send(p);
                            return;
                        }
                    }

                    int time = Convert.ToInt32(ConfigurationManager.AppSettings["maintenanceTimeleft"]);
                    if (time != 0)
                    {
                        LoginFailedMessage p = new LoginFailedMessage(Client);
                        p.SetErrorCode(10);
                        p.RemainingTime(time);
                        p.SetMessageVersion(8);
                        PacketProcessor.Send(p);
                        return;
                    }

                    if (ConfigurationManager.AppSettings["CustomMaintenance"] != string.Empty)
                    {
                        LoginFailedMessage p = new LoginFailedMessage(Client);
                        p.SetErrorCode(10);
                        p.SetReason(ConfigurationManager.AppSettings["CustomMaintenance"]);
                        PacketProcessor.Send(p);
                        return;
                    }

                    string[] cv2 = ConfigurationManager.AppSettings["ClientVersion"].Split('.');
                    string[] cv  = ClientVersion.Split('.');
                    if (cv[0] != cv2[0] || cv[1] != cv2[1])
                    {
                        LoginFailedMessage p = new LoginFailedMessage(Client);
                        p.SetErrorCode(8);
                        /*FOR FHX*/       //p.SetReason("Please re-downoad the APK on the Official FHX Site! \n Official Site: \n\n https://fhx-server.com, or \nhttp://fhxservercoc.com \n\n Or click the Update Button below!");
                        p.SetUpdateURL(Convert.ToString(ConfigurationManager.AppSettings["UpdateUrl"]));
                        PacketProcessor.Send(p);
                        return;
                    }

                    if (Convert.ToBoolean(ConfigurationManager.AppSettings["useCustomPatch"]) && MasterHash != ObjectManager.FingerPrint.sha)
                    {
                        LoginFailedMessage p = new LoginFailedMessage(Client);
                        p.SetErrorCode(7);
                        p.SetResourceFingerprintData(ObjectManager.FingerPrint.SaveToJson());
                        p.SetContentURL(ConfigurationManager.AppSettings["patchingServer"]);
                        p.SetUpdateURL(ConfigurationManager.AppSettings["UpdateUrl"]);
                        PacketProcessor.Send(p);
                        return;
                    }
                    CheckClient();
                }
            } catch (Exception) { }
        }