/* Handle both system wide aliases and wizard aliases. */ mapping player_alias; mapping wizard_alias; void restore_me( void ); void save_me( void ); void create( void ) { player_alias = ([ ]); wizard_alias = ([ ]); restore_me(); } void restore_me( void ) { restore_object( "/daemons/data/alias_d.o" ); } void save_me( void ) { save_object( "/daemons/data/alias_d.o" ); } void add_player_alias( string cmd, string alias ) { if( player_alias == 0 ) player_alias = ([ ]); player_alias[cmd] = alias; write( "Player alias " + cmd + " added." ); save_me(); } void remove_player_alias( string cmd ) { if( player_alias == 0 ) player_alias = ([ ]); player_alias[cmd] = 0; write( "Player alias " + cmd + " removed." ); save_me(); } void add_wizard_alias( string cmd, string alias ) { if( wizard_alias == 0 ) wizard_alias = ([ ]); wizard_alias[cmd] = alias; write( "Wizard alias " + cmd + " added." ); save_me(); } void remove_wizard_alias( string cmd ) { if( wizard_alias == 0 ) wizard_alias = ([ ]); wizard_alias[cmd] = 0; write( "Wizard alias " + cmd + " removed." ); save_me(); } int is_alias( string cmd ) { if( player_alias == 0 ) player_alias = ([ ]); if( wizard_alias == 0 ) wizard_alias = ([ ]); if( player_alias[cmd] != 0 ) return( 1 ); if( SECURE_D->query_wiz( this_player()->query_name() ) ) { if( wizard_alias[cmd] != 0 ) return( 1 ); } return( 0 ); } string query_alias( string cmd ) { if( player_alias == 0 ) player_alias = ([ ]); if( wizard_alias == 0 ) wizard_alias = ([ ]); if( player_alias[cmd] != 0 ) return( player_alias[cmd] ); if( SECURE_D->query_wiz( this_player()->query_name() ) ) { if( wizard_alias[cmd] != 0 ) return( wizard_alias[cmd] ); } return( 0 ); } string do_expand( string alias, string arg ) { string *args; int i; alias = replace_string( alias, "$*", arg ); if( arg != 0 && arg != "" ) { args = explode( arg, " " ); for( i = 0; i < sizeof( args ); i++ ) { alias = replace_string( alias, "$"+i, args[i] ); } } return( alias ); } string expand_alias( string cmd ) { string alias; string arg; if( cmd == 0 || cmd == "" ) return( "" ); arg = ""; sscanf( cmd, "%s %s", cmd, arg ); if( is_alias( cmd ) ) { alias = query_alias( cmd ); return( do_expand( alias, arg ) ); } else { if( arg == 0 || arg == "" ) return( cmd ); return( cmd + " " + arg ); } }