// File: _dref.c
// Mudlib: Nightmare (but see credits)
// Purpose: destructs a reference'd object
// Credits: see _refs.c
#include <daemons.h>
#include <std.h>
inherit DAEMON;
inherit REFS_D;
#define SYNTAX "Syntax: dref <object>\n"
int cmd_dref( string a )
{
mixed ob;
if( !a ) { notify_fail( SYNTAX ); return 0; }
ob = ref_ob( a );
if( !objectp( ob ) )
{
notify_fail( wrap( "Could not identify " + identify( ob ) +
" as an object." ) );
return 0;
}
a = identify( ob );
catch( ob-> remove() );
if( !ob )
{
write( a + " has been removed.\n" );
return 1;
}
catch( destruct( ob ) );
if( !ob )
{
write( a + " has been destructed.\n" );
return 1;
}
write( "You could not destruct " + a + "\n" );
return 1;
}
int help()
{
write( SYNTAX +
"Effect: Tries to remove then destruct object <object>\n"+
"See also: refs, dest\n"+
"" );
return 1;
}