/*
// File: /cmds/std/_ignore.c
// Author: Pallando @ TMI
// Rewritten by Inspiral @ TABOR, 93-09-20
// Purpose: Allow for supressing various types of player output
// from one or more users
//
//
// 94-11-10 Leto changed status to int
*/
#include <mudlib.h>
inherit DAEMON;
int cmd_ignore( string input ) {
string *ignore;
string *list;
int rem_flag;
int loop, size;
ignore = this_player() -> query( "ignore" );
if( !pointerp( ignore ) ) ignore = ({ });
if( !input ) {
if( !sizeof( ignore ) ) write( "You are ignoring no-one.\n" );
else write( wrap( "You are ignoring: " + implode( ignore, ", " ) ) );
return 1;
}
list = explode( lower_case( input ), " " );
for( loop = 0, size = sizeof( list );
loop < size; loop++, rem_flag = 0 ) {
if( sscanf( list[loop], "-%s", list[loop] ) )
rem_flag = 1;
// Why would you want to ignore someone who doesn't exist?
// Because it might be a user@mud , or maybe you even fear a whole mud !
/*
if( !user_exists( list[loop] ) ) {
printf( "IGNORE: Ther is no such user: %s.\n",
capitalize( list[loop] ) );
continue;
}
*/
// Take someone out of ignore list.
if( rem_flag ) {
if( member_array( list[loop], ignore ) == -1 ) {
printf( "IGNORE: You aren't ignoring %s!\n",
capitalize( list[loop] ) );
continue;
}
printf( "IGNORE: You are no longer ignoring %s.\n",
capitalize( list[loop] ) );
ignore -= ({ list[loop] });
continue;
}
// Add a name to the ignore list.
if( member_array( list[loop], ignore ) != -1 ) {
printf( "IGNORE: You are already ignoring %s!\n",
capitalize( list[loop] ) );
continue;
}
// Well, you can't ignore the evil admin!!!! Muahahahah!
if( adminp(list[loop]) ) {
printf( "IGNORE: %s is an admin, and cannot be ignored!\n",
capitalize( list[loop] ) );
continue;
}
printf( "IGNORE: You are now ignoring %s.\n",
capitalize( list[loop] ) );
ignore += ({ list[loop] });
}
this_player() -> set( "ignore", ignore );
return 1;
}
string help() {
return( ""+
"Syntax: ignore [[-]<name>]\n\n"
"Ignore on its own lists the names you are ignoring\n"
"currently. If you give a name, or a list of names, it tries to\n"
"add that name to your ignore list. If you give a name prepended with \"-\",\n"
"that particular name will be removed from your ignore list.\n"
"\nA name can be that of a user or @mud or user@mud\n"+
"\nIgnoring someone blocks their tells, and any channel communica"
"tion,\nexcept from admins.\n"
"\nSee also: tell\n"
"" );
}