/* Do not remove the headers from this file! see /USAGE for more info. */
//:COMMAND
//$$ see: echo, echoall, m_messages
//USAGE echo @<target> <message>
//
//Provides a targetted echo facility, which uses the "message" syntax.
//If the target cannot be found, it is ignored - ie the message is treated
//as a "simple_action" - so presence of $t in the message would cause error.
//
//
//>echom @fred $N $vtest the echom command on $t
//
//>You test the echom command on Fred
//and Fred and onlookers would see suitably adjusted versions.
inherit CMD;
inherit M_GRAMMAR;
private void main(string args)
{
string who;
object targ;
if (!sizeof(args))
{
write("Act how?\n");
return;
}
sscanf(args, "@%s %s", who, args);
args = punctuate(args);
if(who)
{
targ = find_body(who);
if(!targ)
targ = present(who, this_body());
if(!targ)
targ = present(who, environment(this_body()));
}
if (targ)
{
this_body()->targetted_action(args, targ);
} else {
this_body()->simple_action(args, who);
}
}