예제 #1
0
        public GuildStruct GetGuild(string name)
        {
            MySqlCommand cmd = CreateQuery();

            cmd.CommandText = "SELECT * FROM guilds WHERE name=@n";
            cmd.Parameters.AddWithValue("@n", name);
            GuildStruct guild;

            using (MySqlDataReader rdr = cmd.ExecuteReader())
            {
                if (!rdr.HasRows)
                {
                    return(null);
                }
                rdr.Read();
                guild = new GuildStruct
                {
                    Id             = rdr.GetInt32("id"),
                    Name           = rdr.GetString("name"),
                    Level          = rdr.GetInt32("level"),
                    Members        = rdr.GetString("members").Split(','),
                    GuildFame      = rdr.GetInt32("guildFame"),
                    TotalGuildFame = rdr.GetInt32("totalGuildFame")
                };
            }
            return(guild);
        }
예제 #2
0
        public GuildStruct GetGuild(int guildid)
        {
            var cmd = CreateQuery();

            cmd.CommandText = "SELECT * FROM guilds WHERE id=@gid";
            cmd.Parameters.AddWithValue("@gid", guildid);
            GuildStruct guild = null;

            using (var rdr = cmd.ExecuteReader())
            {
                if (!rdr.HasRows)
                {
                    return(null);
                }
                rdr.Read();
                guild = new GuildStruct()
                {
                    Id             = rdr.GetInt32("id"),
                    Name           = rdr.GetString("name"),
                    Level          = rdr.GetInt32("level"),
                    Members        = rdr.GetString("members").Split(','),
                    GuildFame      = rdr.GetInt32("guildFame"),
                    TotalGuildFame = rdr.GetInt32("totalGuildFame")
                };
            }
            return(guild);
        }
예제 #3
0
        public void UpdateGuild(long id)
        {
            GuildStruct guild = GetGuild(id);

            if (guild == null)
            {
                throw new Exception("Guild not found!");
            }
            MySqlCommand cmd = CreateQuery();

            cmd.CommandText = "SELECT * FROM accounts WHERE guild=@gid";
            cmd.Parameters.AddWithValue("@gid", id);
            string members = "";

            using (MySqlDataReader rdr = cmd.ExecuteReader())
            {
                while (rdr.Read())
                {
                    members = members + rdr.GetInt32("id") + ",";
                }
            }

            if (members != "")
            {
                cmd             = CreateQuery();
                cmd.CommandText = "UPDATE guilds SET members=@mem WHERE id=@gid";
                cmd.Parameters.AddWithValue("@gid", id);
                cmd.Parameters.AddWithValue("@mem", members);
                if (cmd.ExecuteNonQuery() == 0)
                {
                    Console.WriteLine("Failed to edit members column!");
                }
            }
            else
            {
                cmd             = CreateQuery();
                cmd.CommandText = "DELETE FROM guilds WHERE id=@gid";
                cmd.Parameters.AddWithValue("@gid", id);
                if (cmd.ExecuteNonQuery() == 0)
                {
                    Console.WriteLine("Failed to delete empty guild!");
                }
            }
        }
예제 #4
0
        public string HttpGetGuildMembers(int num, int offset, Account acc)
        {
            GuildStruct guild = GetGuild((int)acc.Guild.Id);
            string      ret   = "<Guild name=\"" + guild.Name + "\" id=\"" + guild.Id + "\"><TotalFame>" + guild.TotalGuildFame +
                                "</TotalFame><CurrentFame>" + guild.GuildFame + "</CurrentFame><HallType>Guild Hall " +
                                guild.Level + "</HallType>";
            MySqlCommand cmd = CreateQuery();

            cmd.CommandText = "SELECT * FROM accounts WHERE guild = @gid";
            cmd.Parameters.AddWithValue("@gid", guild.Id);
            List <string> founders  = new List <string>();
            List <string> leaders   = new List <string>();
            List <string> officers  = new List <string>();
            List <string> members   = new List <string>();
            List <string> initiates = new List <string>();

            using (MySqlDataReader rdr = cmd.ExecuteReader())
            {
                int countLeft = num;
                int offsleft  = offset;
                while (rdr.Read())
                {
                    if (offsleft == 0)
                    {
                        if (countLeft != 0)
                        {
                            string add = "<Member>";

                            add += string.Format("<Name>{0}</Name>", rdr.GetString("name"));
                            add += string.Format("<Rank>{0}</Rank>", rdr.GetInt32("guildRank"));
                            add += string.Format("<Fame>{0}</Fame>", rdr.GetInt32("guildFame"));

                            add += "</Member>";

                            switch (rdr.GetInt32("guildRank"))
                            {
                            case 40:
                                founders.Add(add);
                                break;

                            case 30:
                                leaders.Add(add);
                                break;

                            case 20:
                                officers.Add(add);
                                break;

                            case 10:
                                members.Add(add);
                                break;

                            case 0:
                                initiates.Add(add);
                                break;
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                    else
                    {
                        offsleft--;
                    }
                    countLeft--;
                }
            }
            members.AddRange(initiates);
            officers.AddRange(members);
            leaders.AddRange(officers);
            founders.AddRange(leaders);
            ret  = founders.Aggregate(ret, (current, i) => current + i);
            ret += "</Guild>";
            return(ret);
        }
예제 #5
0
        public string HTTPGetGuildMembers(int num, int offset, Account acc)
        {
            GuildStruct guild = GetGuild(acc.Guild.Id);
            string      ret   = "<Guild name=\"" + guild.Name + "\" id=\"" + guild.Id + "\"><TotalFame>" + guild.TotalGuildFame + "</TotalFame><CurrentFame>" + guild.GuildFame + "</CurrentFame><HallType>Guild Hall " + guild.Level.ToString() + "</HallType>";
            var         cmd   = CreateQuery();

            cmd.CommandText = "SELECT * FROM accounts WHERE guild = @gid";
            cmd.Parameters.AddWithValue("@gid", guild.Id);
            List <string> Founders  = new List <string>();
            List <string> Leaders   = new List <string>();
            List <string> Officers  = new List <string>();
            List <string> Members   = new List <string>();
            List <string> Initiates = new List <string>();

            using (var rdr = cmd.ExecuteReader())
            {
                int countLeft = num;
                int offsleft  = offset;
                while (rdr.Read())
                {
                    if (offsleft == 0)
                    {
                        if (countLeft != 0)
                        {
                            string add = "<Member>";

                            add += "<Name>" + rdr.GetString("name") + "</Name>";
                            add += "<Rank>" + rdr.GetInt32("guildRank").ToString() + "</Rank>";
                            add += "<Fame>0</Fame>";

                            add += "</Member>";

                            switch (rdr.GetInt32("guildRank"))
                            {
                            case 40:
                                Founders.Add(add); break;

                            case 30:
                                Leaders.Add(add); break;

                            case 20:
                                Officers.Add(add); break;

                            case 10:
                                Members.Add(add); break;

                            case 0:
                                Initiates.Add(add); break;
                            }
                        }
                        else
                        {
                            break;
                        }
                    }
                    else
                    {
                        offsleft--;
                    }
                    countLeft--;
                }
            }
            Members.AddRange(Initiates);
            Officers.AddRange(Members);
            Leaders.AddRange(Officers);
            Founders.AddRange(Leaders);
            foreach (string i in Founders)
            {
                ret += i;
            }
            ret += "</Guild>";
            return(ret);
        }