#include <standard.h>
#include <cmd.h>
inherit CMD_BASE;
string strip(string instr);
void setup()
{
position = 0;
}
string query_usage()
{
return "command";
}
static int cmd(string str, object me) {
string ret,mud;
if (!str) {
object *obs;
string type;
int i;
obs = users();
write(sprintf("%-12.12s %-20.20s %-20.20s %-20.20s\n",
"Name", "Real name", "Where", "Birthday"));
for (i=0;i<sizeof(obs);i++)
{
string euid;
string rnstr;
string pname;
if (obs[i]->query_invis() && !this_player()->query_creator())
continue;
if ((int)obs[i]->query_invis() > 1 && !this_player()->query_god())
continue;
type = (obs[i]->query_earmuffs() ? "e" : " ");
euid = geteuid(obs[i]);
type = (obs[i]->query_object_type());
rnstr = obs[i]->query_real_name();
pname = obs[i]->query_name();
if(rnstr && rnstr[0..0] == ":")
if(!"/secure/master"->valid_read("/players/"+pname[0..0]+"/"+pname,
geteuid(this_player(1))))
rnstr = "-";
printf("%-12.12s %2.2s %-20.20s %-20.20s %-20.20s\n",
(obs[i]->query_invis()?"("+obs[i]->query_name()+")":(string)obs[i]->query_name()),
type,
(rnstr?rnstr:"-"),
((ret = (string)obs[i]->query_where())?ret:"-"),
((ret = (string)obs[i]->query_birthday())?ret:"-"));
}
return 1;
}
str = (string)this_player()->expand_nickname(str);
if(ret = (string)"/secure/finger"->finger_info(str)) {
write(strip(ret));
return 1;
} else if (me->query_creator() &&
sscanf(str, "%s@%s", mud, mud) == 2) {
"/net/intermud3/daemon/finger"->do_finger(str);
return 1;
} else {
notify_fail("Noone going by the name of " + str + " has ever visited " +
"FR: Illumitech.\n");
return 0;
}
} /* finger() */
string strip(string instr) {
instr = replace_string(instr,"","");
return replace_string(instr,"%^","");
}