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); } }
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(); }