Ejemplo n.º 1
0
        public override void Use(Player p, string message, CommandData data)
        {
            string[] args = message.SplitSpaces();
            if (args.Length < 2)
            {
                Help(p); return;
            }

            int maxResults = 0, offset = 0;

            if (!CommandParser.GetInt(p, args[0], "Max results", ref maxResults, 1, 15))
            {
                return;
            }

            TopStat stat = FindTopStat(args[1]);

            if (stat == null)
            {
                p.Message("%WUnrecognised type \"{0}\".", args[1]); return;
            }

            if (args.Length > 2)
            {
                if (!CommandParser.GetInt(p, args[2], "Offset", ref offset, 0))
                {
                    return;
                }
            }

            string          limit = " LIMIT " + offset + "," + maxResults;
            List <string[]> stats = Database.GetRows(stat.Table, "DISTINCT Name, " + stat.Column,
                                                     "ORDER BY" + stat.OrderBy + limit);

            p.Message("&a{0}:", stat.Title());
            for (int i = 0; i < stats.Count; i++)
            {
                string nick  = p.FormatNick(stats[i][0]);
                string value = stat.Formatter(stats[i][1]);
                p.Message("{0}) {1} %S- {2}", offset + (i + 1), nick, value);
            }
        }
Ejemplo n.º 2
0
        public override void Use(Player p, string message)
        {
            string[] args = message.SplitSpaces();
            if (args.Length < 2)
            {
                Help(p); return;
            }

            int offset = ParseOffset(p, args);
            int limit  = ParseLimit(p, args);

            if (limit == -1 || offset == -1)
            {
                return;
            }

            TopStat stat = FindTopStat(args[0]);

            if (stat == null)
            {
                Player.Message(p, "/Top: Unrecognised type \"{0}\".", args[0]);
                return;
            }

            string    strLimit = " LIMIT " + offset + "," + limit;
            DataTable db       = Database.Backend.GetRows(stat.Table, "DISTINCT Name, " + stat.Column,
                                                          "ORDER BY" + stat.OrderBy + strLimit);

            Player.Message(p, "&a{0}:", stat.Title());
            for (int i = 0; i < db.Rows.Count; i++)
            {
                string player = PlayerInfo.GetColoredName(p, db.Rows[i]["Name"].ToString());
                string item   = db.Rows[i][stat.Column].ToString();
                Player.Message(p, "{0}) {1} %S- {2}", offset + (i + 1), player, stat.Formatter(item));
            }
            db.Dispose();
        }