From the NannyMUD documentation

LAST CHANGE

2000-12-16

FUNCTION


NAME

        feeling_hook - To hook a soul feeling.

AVAILABILITY

	/std/soul/soul
	/std/soul/sould

SYNTAX

	void feeling_hook(mixed *feeling_data, object soul | object sould)

DESCRIPTION

	The feeling_hook is called whenever a living performs a successful
	soul feeling. The second argument depends if the hook was called
	from a specific player soul or from the soul daemon.

	The argument feeling_data has the following format:
	({ string *metaverb, mixed *verbdata1, mixed *verbdata2, ... })
where each verbdata has the following format:
		   verbdata = ({ string verb,
				 object *targets,
				 string adverbs,
				 string message,
				 string body_part,
				 string preposition })

NOTE

	If you hook the sould, it will be effective for all players.
	Make sure that your hook does NOT bug since it will affect
	everyone. 

FUNCTION


NAME

        block_feeling_hook - To block a soul feeling.

AVAILABILITY

	/std/soul/soul
	/std/soul/sould

SYNTAX

	int block_feeling_hook(mixed *feeling_data, object soul | sould)

DESCRIPTION

	The block_feeling_hook is called just before a feeling is about
	to be performed. If it returns 1, the feeling fails. The second 
	argument depends if the hook was called from a specific player 
	soul or from the soul daemon.

	The argument feeling_data has the following format:
	({ string *metaverb, mixed *verbdata1, mixed *verbdata2, ... })
where each verbdata has the following format:
		   verbdata = ({ string verb,
				 object *targets,
				 string adverbs,
				 string message,
				 string body_part,
				 string preposition })

NOTE

	If you hook the sould, it will be effective for all players.
	Make sure that your hook does NOT bug since it will affect
	everyone. 

EXAMPLE

	/* A simple blocking of the "smile" feeling */
	block_feeling_hook(data,soul) {
	  mixed element;
	  foreach(element, data)
	    if(pointerp(element) && element[0] == "smile") return
	      tell_object(this_player(),
		 "You are not allowed to smile.\n"), 1;
	}