LoadCharacters() public method

public LoadCharacters ( Account acc, Chars chrs ) : void
acc Account
chrs Chars
return void
コード例 #1
0
        public Chars GetChars(string guid, string password, XmlData data)
        {
            using (var db = new Database())
            {
                Account a = db.Verify(guid, password, data);
                if (a != null)
                {
                    if (a.Banned)
                        return null;
                }

                Chars chrs = new Chars
                {
                    Characters = new List<Char>(),
                    NextCharId = 2,
                    MaxNumChars = 1,
                    Account = a,
                };
                db.GetCharData(chrs.Account, chrs);
                db.LoadCharacters(chrs.Account, chrs);
                chrs.News = db.GetNews(Program.GameData, chrs.Account);
                chrs.OwnedSkins = Utils.GetCommaSepString(chrs.Account.OwnedSkins.ToArray());
                return chrs;
            }
        }
コード例 #2
0
ファイル: list.cs プロジェクト: HamSammich/rotmg_svr
        public void HandleRequest(HttpListenerContext context)
        {
            NameValueCollection query;
            using (StreamReader rdr = new StreamReader(context.Request.InputStream))
                query = HttpUtility.ParseQueryString(rdr.ReadToEnd());

            using (var db1 = new Database())
            {

                chrs = new Chars()
                {
                    Characters = new List<Char>() { },
                    NextCharId = 2,
                    MaxNumChars = 1,
                    Account = db1.Verify(query["guid"], query["password"]),
                    Servers = new List<ServerItem>()
                    {
                        new ServerItem()
                        {
                            Name = "EUSouth",
                            Lat = 22.28,
                            Long = 114.16,
                            DNS = db.confreader.getservers(false).ToString(), //127.0.0.1, CHANGE THIS TO LET YOUR FRIENDS CONNECT
                            Usage = 0.2,
                            AdminOnly = false
                        }
                        //new ServerItem()
                        //{
                        //    Name = "Admin Realm",
                        //    Lat = 22.28,
                        //    Long = 114.16,
                        //    DNS = "127.0.0.1",
                        //    Usage = 0.2,
                        //    AdminOnly = true
                        //}
                    }
                };
                if (chrs.Account != null)
                {
                    db1.GetCharData(chrs.Account, chrs);
                    db1.LoadCharacters(chrs.Account, chrs);
                    chrs.News = db1.GetNews(chrs.Account);
                }
                else
                {
                    chrs.Account = Database.CreateGuestAccount(query["guid"]);
                    chrs.News = db1.GetNews(null);
                }

                MemoryStream ms = new MemoryStream();
                XmlSerializer serializer = new XmlSerializer(chrs.GetType(), new XmlRootAttribute(chrs.GetType().Name) { Namespace = "" });

                XmlWriterSettings xws = new XmlWriterSettings();
                xws.OmitXmlDeclaration = true;
                xws.Encoding = Encoding.UTF8;
                XmlWriter xtw = XmlWriter.Create(context.Response.OutputStream, xws);
                serializer.Serialize(xtw, chrs, chrs.Namespaces);
            }
        }
コード例 #3
0
        protected override void HandleRequest()
        {
            using (Database db = new Database())
            {
                Account a = db.Verify(Query["guid"], Query["password"], Program.GameData);
                if (!CheckAccount(a, db)) return;
                db.LockAccount(a);
                Chars chrs = new Chars
                {
                    Characters = new List<Char>(),
                    NextCharId = 2,
                    MaxNumChars = 1,
                    Account = a,
                    Servers = GetServerList()
                };
                if (chrs.Account != null)
                {
                    db.GetCharData(chrs.Account, chrs);
                    db.LoadCharacters(chrs.Account, chrs);
                    chrs.News = db.GetNews(Program.GameData, chrs.Account);
                    chrs.OwnedSkins = Utils.GetCommaSepString(chrs.Account.OwnedSkins.ToArray());
                    db.UnlockAccount(chrs.Account);
                }
                else
                {
                    chrs.Account = Database.CreateGuestAccount(Query["guid"] ?? "");
                    chrs.News = db.GetNews(Program.GameData, null);
                }
                MapPoint p = null; //GetLatLong(Context.Request.RemoteEndPoint.Address);
                if (p != null)
                {
                    chrs.Lat = p.Latitude.ToString().Replace(',', '.');
                    chrs.Long = p.Longitude.ToString().Replace(',', '.');
                }
                chrs.ClassAvailabilityList = GetClassAvailability(chrs.Account);
                chrs.TOSPopup = chrs.Account.NotAcceptedNewTos;

                chrs.ClassAvailabilityList = GetClassAvailability(chrs.Account);
                XmlSerializer serializer = new XmlSerializer(chrs.GetType(),
                    new XmlRootAttribute(chrs.GetType().Name) { Namespace = "" });

                XmlWriterSettings xws = new XmlWriterSettings();
                xws.OmitXmlDeclaration = true;
                xws.Encoding = Encoding.UTF8;
                xws.Indent = true;
                xws.IndentChars = "    ";
                XmlWriter xtw = XmlWriter.Create(Context.Response.OutputStream, xws);
                serializer.Serialize(xtw, chrs, chrs.Namespaces);
            }
        }
コード例 #4
0
ファイル: list.cs プロジェクト: BlackRayquaza/PhoenixRealms
 protected override void HandleRequest()
 {
     using (var db = new Database())
     {
         List<ServerItem> servers;
         if (Account == null)
             servers = GetServersForRank(0);
         else
             servers = Account.Banned ? YoureBanned() : GetServersForRank(Account.Rank);
         var chrs = new Chars
         {
             Characters = new List<Char>(),
             NextCharId = 2,
             MaxNumChars = 1,
             Account = Account,
             Servers = servers
         };
         if (chrs.Account != null)
         {
             db.GetCharData(chrs.Account, chrs);
             db.LoadCharacters(chrs.Account, chrs);
             chrs.News = db.GetNews(chrs.Account);
         }
         else
         {
             chrs.Account = Database.CreateGuestAccount(Query["guid"]);
             chrs.News = db.GetNews(null);
         }
         var serializer = new XmlSerializer(chrs.GetType(),
             new XmlRootAttribute(chrs.GetType().Name) { Namespace = "" });
         var xws = new XmlWriterSettings
         {
             OmitXmlDeclaration = true,
             Encoding = Encoding.UTF8,
             Indent = true,
             IndentChars = "    "
         };
         var xtw = XmlWriter.Create(Context.Response.OutputStream, xws);
         serializer.Serialize(xtw, chrs, chrs.Namespaces);
     }
 }
コード例 #5
0
ファイル: list.cs プロジェクト: Topnenyie/rotmg_svr
        public void HandleRequest(HttpListenerContext context)
        {
            NameValueCollection query;
            using (StreamReader rdr = new StreamReader(context.Request.InputStream))
                query = HttpUtility.ParseQueryString(rdr.ReadToEnd());

            using (var db = new Database(Program.Settings.GetValue("conn")))
            {

                Chars chrs = new Chars()
                {
                    Characters = new List<Char>() { },
                    NextCharId = 2,
                    MaxNumChars = 1,
                    Account = db.Verify(query["guid"], query["password"]),
                    Servers = GetServerList()
                };
                if (chrs.Account != null)
                {
                    db.GetCharData(chrs.Account, chrs);
                    db.LoadCharacters(chrs.Account, chrs);
                    chrs.News = db.GetNews(Program.GameData, chrs.Account);
                }
                else
                {
                    chrs.Account = Database.CreateGuestAccount(query["guid"]);
                    chrs.News = db.GetNews(Program.GameData, null);
                }

                MemoryStream ms = new MemoryStream();
                XmlSerializer serializer = new XmlSerializer(chrs.GetType(), new XmlRootAttribute(chrs.GetType().Name) { Namespace = "" });

                XmlWriterSettings xws = new XmlWriterSettings();
                xws.OmitXmlDeclaration = true;
                xws.Encoding = Encoding.UTF8;
                XmlWriter xtw = XmlWriter.Create(context.Response.OutputStream, xws);
                serializer.Serialize(xtw, chrs, chrs.Namespaces);
            }
        }
コード例 #6
0
ファイル: list.cs プロジェクト: szfiopgh9w348ay/Lights-Realm
        protected override void HandleRequest()
        {
            using (var db = new Database())
            {
                List<ServerItem> filteredServers = null;
                Account a = db.Verify(Query["guid"], Query["password"]);
                if (a != null)
                {
                    if (a.Banned)
                    {
                        filteredServers = YoureBanned();
                    }
                    else
                    {
                        filteredServers = GetServersForRank(a.Rank);
                    }
                }
                else
                {
                    filteredServers = GetServersForRank(0);
                }

                Chars chrs = new Chars()
                {
                    Characters = new List<Char>() { },
                    NextCharId = 2,
                    MaxNumChars = 1,
                    Account = db.Verify(Query["guid"], Query["password"]),
                    Servers = filteredServers
                };
                Account dvh = null;
                if (chrs.Account != null)
                {
                    db.GetCharData(chrs.Account, chrs);
                    db.LoadCharacters(chrs.Account, chrs);
                    chrs.News = db.GetNews(chrs.Account);
                    dvh = chrs.Account;
                }
                else
                {
                    chrs.Account = Database.CreateGuestAccount(Query["guid"]);
                    chrs.News = db.GetNews(null);
                }

                MemoryStream ms = new MemoryStream();
                XmlSerializer serializer = new XmlSerializer(chrs.GetType(), new XmlRootAttribute(chrs.GetType().Name) { Namespace = "" });

                XmlWriterSettings xws = new XmlWriterSettings();
                xws.OmitXmlDeclaration = true;
                xws.Encoding = Encoding.UTF8;
                XmlWriter xtw = XmlWriter.Create(Context.Response.OutputStream, xws);
                serializer.Serialize(xtw, chrs, chrs.Namespaces);
            }
        }
コード例 #7
0
        protected override void HandleRequest()
        {
            using (Database db = new Database())
            {
                Account a;
                if (Query["guid"].Contains("@") && !String.IsNullOrWhiteSpace(Query["password"]))
                {
                    a = db.Verify(Query["guid"], Query["password"], Program.GameData);
                    if (a == null)
                    {
                        using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
                            wtr.WriteLine("<Error>Account credentials not valid</Error>");
                        Context.Response.Close();
                        return;
                    }
                }
                else
                {
                    a = db.GetAccountByName(Query["guid"], Program.GameData);
                    if (a != null)
                    {
                        if (!a.VisibleMuledump)
                        {
                            using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
                                wtr.WriteLine("<Error>This player has a private muledump.</Error>");
                            Context.Response.Close();
                            return;
                        }
                    }
                    else
                    {
                        using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
                            wtr.WriteLine("<Error>User not found</Error>");
                        Context.Response.Close();
                        return;
                    }
                }

                if (a.Banned)
                {
                    using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
                        wtr.WriteLine("<Error>Account under maintenance</Error>");
                    Context.Response.Close();
                    return;
                }

                Chars chrs = new Chars
                {
                    Characters = new List<Char>(),
                    NextCharId = 2,
                    MaxNumChars = 1,
                    Account = a
                };

                if (chrs.Account != null)
                {
                    db.GetCharData(chrs.Account, chrs);
                    db.LoadCharacters(chrs.Account, chrs);
                    chrs.News = db.GetNews(Program.GameData, chrs.Account);
                    chrs.OwnedSkins = Utils.GetCommaSepString(chrs.Account.OwnedSkins.ToArray());
                }
                else
                {
                    using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
                        wtr.WriteLine("<Error>User not found</Error>");
                    Context.Response.Close();
                    return;
                }

                XmlSerializer serializer = new XmlSerializer(chrs.GetType(),
                    new XmlRootAttribute(chrs.GetType().Name) { Namespace = "" });

                XmlWriterSettings xws = new XmlWriterSettings();
                xws.OmitXmlDeclaration = true;
                xws.Encoding = Encoding.UTF8;
                xws.Indent = true;
                xws.IndentChars = "    ";
                XmlWriter xtw = XmlWriter.Create(Context.Response.OutputStream, xws);
                serializer.Serialize(xtw, chrs, chrs.Namespaces);
            }
        }
コード例 #8
0
ファイル: list.cs プロジェクト: Club559/Travs-Domain-Server
        public override void HandleRequest(HttpListenerContext context)
        {
            NameValueCollection query;
            using (var rdr = new StreamReader(context.Request.InputStream))
                query = HttpUtility.ParseQueryString(rdr.ReadToEnd());

            if (query.AllKeys.Length == 0)
            {
                string queryString = string.Empty;
                string currUrl = context.Request.RawUrl;
                int iqs = currUrl.IndexOf('?');
                if (iqs >= 0)
                {
                    query =
                        HttpUtility.ParseQueryString((iqs < currUrl.Length - 1)
                            ? currUrl.Substring(iqs + 1)
                            : String.Empty);
                }
            }

            using (var db = new Database(Program.Settings.GetValue("conn")))
            {
                bool isGuest = db.Verify(query["guid"], query["password"]) == null ? true : false;
                Account acc = db.Verify(query["guid"], query["password"]);

                var chrs = new Chars
                {
                    Characters = new List<Char>(),
                    NextCharId = 2,
                    MaxNumChars = 1,
                    Account = db.Verify(query["guid"], query["password"]),
                    Servers = isGuest ? NoServerList() : GetServerList(acc.Admin)
                };
                if (chrs.Account != null)
                {
                    if (!chrs.Account.isBanned)
                    {
                        db.GetCharData(chrs.Account, chrs);
                        db.LoadCharacters(chrs.Account, chrs);
                        chrs.News = db.GetNews(Program.GameData, chrs.Account);
                    }
                }
                else
                {
                    chrs.Account = Database.CreateGuestAccount(query["guid"]);
                    chrs.News = db.GetNews(Program.GameData, null);
                }
                chrs.ClassAvailabilityList = GetClassAvailability(chrs.Account);

                var ms = new MemoryStream();
                var serializer = new XmlSerializer(chrs.GetType(),
                    new XmlRootAttribute(chrs.GetType().Name) {Namespace = ""});

                var xws = new XmlWriterSettings();
                xws.OmitXmlDeclaration = true;
                xws.Encoding = Encoding.UTF8;
                XmlWriter xtw = XmlWriter.Create(context.Response.OutputStream, xws);
                serializer.Serialize(xtw, chrs, chrs.Namespaces);
            }
        }
コード例 #9
-1
ファイル: list.cs プロジェクト: RiiggedMPGH/Owl-Realms-Source
        public void HandleRequest(HttpListenerContext context)
        {
            NameValueCollection query;
            using (var rdr = new StreamReader(context.Request.InputStream))
                query = HttpUtility.ParseQueryString(rdr.ReadToEnd());

            using (var db = new Database())
            {
                List<ServerItem> filteredServers = null;
                Account a = db.Verify(query["guid"], query["password"]);
                if (a != null)
                {
                    if (a.Banned)
                    {
                        filteredServers = YoureBanned();
                    }
                    else
                    {
                        filteredServers = GetServersForRank(a.Rank);
                    }
                }
                else
                {
                    filteredServers = GetServersForRank(0);
                }

                var chrs = new Chars
                {
                    Characters = new List<Char>(),
                    NextCharId = 2,
                    MaxNumChars = 1,
                    Account = db.Verify(query["guid"], query["password"]),
                    Servers = filteredServers
                };
                Account dvh = null;
                if (chrs.Account != null)
                {
                    db.GetCharData(chrs.Account, chrs);
                    db.LoadCharacters(chrs.Account, chrs);
                    chrs.News = db.GetNews(chrs.Account);
                    dvh = chrs.Account;
                }
                else
                {
                    chrs.Account = Database.CreateGuestAccount(query["guid"]);
                    chrs.News = db.GetNews(null);
                }

                var ms = new MemoryStream();
                var serializer = new XmlSerializer(chrs.GetType(),
                    new XmlRootAttribute(chrs.GetType().Name) {Namespace = ""});

                var xws = new XmlWriterSettings();
                xws.OmitXmlDeclaration = true;
                xws.Encoding = Encoding.UTF8;
                XmlWriter xtw = XmlWriter.Create(context.Response.OutputStream, xws);
                serializer.Serialize(xtw, chrs, chrs.Namespaces);
                db.Dispose();
            }
        }