/
LIB3/
LIB3/D/ADMIN/
LIB3/D/ADMIN/OBJ/
LIB3/D/ADMIN/ROOM/W/
LIB3/D/HOME/
LIB3/D/HOME/CITY/ARENA/
LIB3/D/HOME/CITY/ITEMS/
LIB3/D/HOME/CITY/POSTOFFI/
LIB3/DOC/
LIB3/GLOBAL/SPECIAL/
LIB3/GLOBAL/VIRTUAL/
LIB3/NET/
LIB3/NET/CONFIG/
LIB3/NET/DAEMON/CHARS/
LIB3/NET/GOPHER/
LIB3/NET/INHERIT/
LIB3/NET/OBJ/
LIB3/NET/SAVE/
LIB3/NET/VIRTUAL/
LIB3/OBJ/B_DAY/
LIB3/OBJ/HANDLERS/TERM_TYP/
LIB3/PLAYERS/B/
LIB3/PLAYERS/N/
LIB3/ROOM/
LIB3/SAVE/
LIB3/SAVE/BOARDS/
LIB3/SAVE/ENVIRON/
LIB3/SAVE/POST/
LIB3/STD/COMMANDS/SHADOWS/
LIB3/STD/CREATOR/
LIB3/STD/DOM/
LIB3/STD/EFFECTS/
LIB3/STD/EFFECTS/HEALING/
LIB3/STD/EFFECTS/OTHER/
LIB3/STD/EFFECTS/POISONS/
LIB3/STD/ENVIRON/
LIB3/STD/GUILDS/
LIB3/STD/LIQUIDS/
LIB3/STD/ROOM/
LIB3/STD/TRIGGER/SHADOW/
LIB3/W/
LIB3/W/BANNOR/
LIB3/W/NEWSTYLE/
mapping close_up;

#define TELL_DEMON "/net/daemon/chars/tell_demon"

void    create()
{
    seteuid( getuid() );
    close_up = ([ ]);
}				/* create() */

void    read_callback( int fd, string mess )
{
    string  str, person, mud, who, message;
    object  ob;

    if( sscanf( mess, "%s@%s tells %s: %s", person, mud, who, message ) != 4 )
    {
	previous_object()->write_fd( fd, "Tell_Server@" + MUD_NAME + " tells " +
				     "whoever-the-heck-this-is: You have " +
				     "an incorrect message format.\n" );
    }
    else
	if( !find_player( who ) )
	{
	    previous_object()->write_fd( fd, "Tell_Server@" + MUD_NAME + " tells " +
					 person + ": Either " + who + " isn't logged on " +
					 "or you are a right womble.\n" );
	}
	else
	{
	    ob = clone_object( TELL_DEMON );
	    ob->setup_tell( person, mud, who, message );
	    previous_object()->write_fd( fd, "Tell_server@" + MUD_NAME + " tells " +
					 person + ": The message is on its way.\n" );
	}
    previous_object()->close_fd( fd );
}				/* read_callback() */