Esempio n. 1
0
 public override void Process(Level level)
 {
     if (Constants.IsRc4)
     {
         if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["patchingServer"]))
         {
             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);
         }
     }
     else
     {
         PacketProcessor.Send(new HandshakeSuccess(Client, this));
     }
 }
Esempio n. 2
0
        public override void Process(Level a)
        {
            if (Client.CState >= 1)
            {
                int time = Convert.ToInt32(ConfigurationManager.AppSettings["maintenanceTimeleft"]);
                if (time != 0)
                {
                    var p = new LoginFailedMessage(Client);
                    p.SetErrorCode(10);
                    p.RemainingTime(time);
                    p.SetMessageVersion(8);
                    PacketManager.ProcessOutgoingPacket(p);
                    return;
                }

                var cv = ClientVersion.Split('.');
                if (cv[0] != "8" || cv[1] != "332") // 8.332
                //if (cv[0] != "8" || cv[1] != "551") // for 8.551
                {
                    var p = new LoginFailedMessage(Client);
                    p.SetErrorCode(8);
                    p.SetUpdateURL(Convert.ToString(ConfigurationManager.AppSettings["UpdateUrl"]));
                    PacketManager.ProcessOutgoingPacket(p);
                    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"]);
                    PacketManager.ProcessOutgoingPacket(p);
                    return;
                }
                CheckClient();
            }
        }
Esempio n. 3
0
 public override void Process(Level level)
 {
     if (Constants.IsRc4)
     {
         if (string.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["patchingServer"]))
         {
             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();
         }
         else
         {
             throw new NullReferenceException("Patching server cannot be nulled in RC4");
         }
     }
     else
     {
         new HandshakeSuccess(Client, this).Send();
     }
 }
Esempio n. 4
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();
            }
        }
        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) { }
        }