/* Do not remove the headers from this file! see /USAGE for more info. */ // specification is: snoop [user] [str*] // we will receive: ({ user, ({ words }) }) //:COMMAND //$$see: unsnoop, snoops //USAGE: snoop < name > // //This command will allow you to see exactly what appears on the //named characters screen, if the player has snoopable on. //Admins can snoop anybody at any time. // //ALL SNOOPS ARE LOGGED. //Spying on a player for no better reason than just to do it will //not be tolerated by the admin of this mud. //Use this command to help find bugs and see what exactly the player //did etc. but in no way use it to spy on players. #include <log.h> inherit CMD; private void main(mixed *arg) { int rc; if ( !arg[0] ) { out("Try: unsnoop [player] instead.\n"); return; } else { string msg; if ( arg[1] ) msg = implode(arg[1], " "); else msg = "no reason given"; msg = sprintf("%s snooped %s because: %s\n", this_user()->query_userid(), arg[0]->query_link()->query_userid(), msg); rc = SNOOP_D->snoop(this_body(), arg[0]); switch(rc) { case 0: LOG_D->log(LOG_SNOOP, msg); out("Okay.\n"); return; case -1: out("Uhhh... you're already snooping that one, holmes.\n"); return; case -2: out("Doh! That would make a snoop cycle! No can do...\n"); return; case -3: out("No permissions, sorry...\n"); return; default: out("You can't, but I can't tell you why...\n"); return; } } }