/*
// This file is part of the TMI Mudlib distribution.
// Please include this header if you use this code.
// Originally written by Sulam (sometime)
// Rewritten cause of grossity by Sulam(1-22-92)
// Help added by Brian (1/28/92)
// tmp_home clonable workroom stuff put in by Pallando 92-12-20
// tmp_home stuff updated by Watcher 93-01-31
*/
#include <move.h>
#include <daemons.h>
#include <mudlib.h>
#include <fingerd.h>
inherit DAEMON;
int
cmd_home( string pl_name ) {
object pl_obj, tmp_home;
string home_dir, home, mess;
if( pl_name )
{
home = (string)FINGERD-> _query_environment( pl_name, "home" );
if( !home ) home = "workroom";
home_dir = user_path( pl_name );
home = resolv_path( home_dir, home );
if( file_size( home ) < 0 && file_size( home + ".c" ) < 0 )
{
if( !( pl_obj = find_player( pl_name ) ) ||
!( tmp_home = pl_obj-> query( "tmp_home" ) ) )
{
notify_fail( "Couldn't find " + capitalize( pl_name ) + "'s home.\n" );
return 0;
}
}
} else {
home = (string)this_player()-> getenv( "home" );
if( !home ) home = "workroom";
home_dir = user_path( geteuid( this_player() ) );
home = resolv_path( home_dir, home );
}
if(environment(this_player()) &&
file_name(environment(this_player())) == home) {
write("You are already in your home.\n");
return 1; }
mess = this_player()-> query_mhome();
if (!file_exists(home) && !file_exists(home + ".c")) {
if( !(tmp_home = this_player()->query( "tmp_home" )) ) {
tmp_home = clone_object( "/obj/workroom" );
this_player()->set( "tmp_home", tmp_home ); }
if(!tmp_home ||
(int)this_player()->move_player(tmp_home, mess) != MOVE_OK) {
notify_fail("You remain where you are.\n");
return 1; }
}
else if((int)this_player()->move_player(home, mess) != MOVE_OK) {
notify_fail("You remain where you are.\n");
return 0; }
/*
this_player()-> describe_current_room( this_player()-> query_verbose() );
say( this_player()-> query_mmin() + "\n" );
*/
return 1;
}
int
help() {
write( "Command: home\nSyntax: home [player]\n" +
"If no user is specified this command takes you to\n" +
"your workroom. If you do not have a workroom that\n" +
"will load then you will go to a cloned workroom. If you name a\n" +
"player then you will be taken to that player's workroom\n" +
"instead.\n" );
return 1;
}
/* EOF */