/*
// reply.c
// Command to send a message to the last person who sent you a tell.
// There was a very old version of this that was wrecked by the move
// to 0.9.0. Prydain and Blackpool played with it. Someone got it
// working but didn't add a header, probably Prydain.
// Mobydick added this header and the help, 11-20-92
// Pallando re-wrote the whole command from new (92-12-12)
// Watcher modified it for use with the new body system (93-03-26)
// 93-08-18 Grendel@tmi-2 added input_to option to get rid of those
//                        crossed lines.
// 94-11-10 Leto@Earth fixed return types related to notify_fail
*/
#include <net/daemons.h>
#include <mudlib.h>
inherit DAEMON ;
#define SYNTAX "Syntax: reply [<message>]\n"
void got_reply(string msg, string who);
int cmd_reply( string msg ) {
  string who;
  who = (string)this_player()-> query( "reply" );
 
  if(!who) {
  notify_fail("No target found for reply.\n");
  return 0; }
 
  if( !msg ) {
     printf( "Your last tell was from '%s'.\n", who );
    input_to("got_reply", 0, who);
    write("reply> ");
    return 1;
  }
  got_reply(msg, who);
  return 1;
}
 
void got_reply(string msg, string who)
{
  object user;
  string target, mud;
  int emote;
  if( !msg || msg == "" ) {
    write("Aborted.\n");
    return;
  }
  who = lower_case( who );
   if( sscanf( msg, ":emote %s", msg ) ) emote = 1;
 
  if( sscanf( who, "%s@%s", target, mud ) == 2 )  {
    if(sizeof(explode(mud, " ")) > 1)  
	mud = implode(explode(mud, " "), ".");
    write( TS_D-> remote_tell( this_player(), target, mud, msg, emote ) );
    return;
  }
 
  user = find_player(who);
if (emote) {
     notify_fail( "Emotes are valid only with intermud tells/replies.\n" );
  return 0;
}
 
  if(!user) {
  write(capitalize(who) + " is no longer around.\n");
  return; }
 
  if((int)this_player()->query("npc") && !wizardp(user))
  write( TS_D-> tell_user( this_player()-> query( "name" ),
	0, who, msg) );
 
  else write( TS_D->tell_user(this_player()->link_data("name"),
		0, who, msg) );
 
return; }
int help() {
  write( SYNTAX + "\n" +@HELP
Effect: tells <message> to the last person to send you a tell.  If
you omit message, you will be given a prompt to enter the message.
This allows you to reply without worrying if someone else will send
you a tell while you are typing.
HELP
			       );
  return 1;
}