'List the players'

def func(self):

    caller = self.caller
    if (self.args and self.args.isdigit()):
        nlim = int(self.args)
    else:
        nlim = 10
    nplayers = PlayerDB.objects.count()
    dbtotals = PlayerDB.objects.object_totals()
    typetable = EvTable('|wtypeclass|n', '|wcount|n', '|w%%|n', border='cells', align='l')
    for (path, count) in dbtotals.items():
        typetable.add_row(path, count, ('%.2f' % ((float(count) / nplayers) * 100)))
    plyrs = PlayerDB.objects.all().order_by('db_date_created')[max(0, (nplayers - nlim)):]
    latesttable = EvTable('|wcreated|n', '|wdbref|n', '|wname|n', '|wtypeclass|n', border='cells', align='l')
    for ply in plyrs:
        latesttable.add_row(utils.datetime_format(ply.date_created), ply.dbref, ply.key, ply.path)
    string = ('\n|wPlayer    typeclass    distribution:|n\n%s' % typetable)
    string += ('\n|wLast    %s    Players    created:|n\n%s' % (min(nplayers, nlim), latesttable))
    caller.msg(string)
