/* -*- LPC -*- */ /* * $Locker: $ * $Id: pe_ople.c,v 1.3 2001/05/02 03:39:24 ceres Exp $ * $Log: pe_ople.c,v $ * Revision 1.3 2001/05/02 03:39:24 ceres * Added domain sort * * Revision 1.2 1999/10/28 02:35:38 ceres * added more options * .my * * Revision 1.1 1998/01/06 05:25:41 ceres * Initial revision * */ /* people command, trial out by Turrican for a commands daemon. */ inherit "/cmds/base"; #include <creator.h> #include <peopler.h> int num_sort(object first, object second) { int one, two; one = first->query_level(); two = second->query_level(); // reset_eval_cost(); if(one < two) return 1; if(one > two) return -1; return 0; } int guild_sort(object first, object second) { object g1, g2; g1 = first->query_guild_ob(); g2 = second->query_guild_ob(); return strcmp(g1 ? g1->query_name() : "", g2 ? g2->query_name() : ""); } int domain_sort(object first, object second) { object d1, d2; d1 = environment(first); d2 = environment(second); return strcmp(d1 ? file_name(d1) : "", d2 ? file_name(d2) : ""); } int age_sort(object first, object second) { int one, two; one = first->query_time_on(); two = second->query_time_on(); if(one < two) return -1; if(one > two) return 1; return 0; } mixed cmd(string str) { mixed *stuff; string bit, *bits; function sort_func; stuff = this_player()->query_property("people list"); if (!stuff) stuff = P_DEFAULT; if(str) { bits = explode(str, " "); str = 0; foreach(bit in bits) { switch(bit) { case "-l": sort_func = (: num_sort :); break; case "-g": sort_func = (: guild_sort :); break; case "-a": sort_func = (: age_sort :); break; case "-d": sort_func = (: domain_sort :); break; default: if(str) str += " " + bit; else str = bit; } } } return (int)PEOPLER->do_command(stuff, str, sort_func); } /* cmd() */ mixed *query_patterns() { return ({ "", (: cmd(0) :), "<string>", (: cmd($4[0]) :) }); } /* query_patterns() */