/** * Concept derived from The Dreamings creators command; Galileo * 19 July 1999 - Queue put in a check for net dead creators, driver doesn't * seem to like it when you call query_idle() on net dead people * Modified For Divided Sky; Shaydz * @change Rewrote a wee little to make it a few times faster * - Sandoz, May 2002. */ inherit COMMAND_BASE; /** @ignore yes */ varargs string get_colour( string person, string *leaders ) { // leader mode. if( !leaders ) return "%^CYAN%^"; if( member_array( person, leaders ) != -1 ) return "%^CYAN%^"; if( DOMAIN_H->query_member("learning", person ) && sizeof( DOMAIN_H->query_domains(person) ) == 1 ) return "%^YELLOW%^"; return "%^WHITE%^"; } /* get_colour() */ /** @ignore yes */ int cmd( string str ) { string *creators, *leaders, option; function f; if( str == "leader" || str == "leaders") { creators = DOMAIN_H->query_leaders(); option = "leaders"; } else if( DOMAIN_H->query_domain(str) ) { leaders = DOMAIN_H->query_leaders(str); creators = DOMAIN_H->query_creators(str); option = str; } else { leaders = DOMAIN_H->query_leaders(); creators = DOMAIN_H->query_creators(); option = "creators"; } if( str != "all" && str != "sage") creators -= DOMAIN_H->query_members("sage"); if( str != "all" && str != "afterlife") creators -= DOMAIN_H->query_members("afterlife"); f = function( string name, string *leaders ) { int last; object ob; ob = find_player(name); last = ob ? ob->query_last_log_on() : PLAYER_H->test_last(name); return sprintf("%s%s%-16s %-26s %-15s%s", get_colour( name, leaders ), ( DOMAIN_H->query_member("sage", name ) ? "*" : ( DOMAIN_H->query_member("afterlife", name ) ? "+" : " ") ), CAP(name), ( ob ? "Currently Logged In" : ctime(last) ), ( ob ? ( !interactive(ob) ? "Net dead" : "Idle: "+query_idle(ob) / 60 ) : time_string( time() - last, 1 ) ), "%^RESET%^"); }; creators = map( creators, f, leaders ); str = create_table( ({ CAP(option), "creator" }), creators, 0 ); tell_object( TP, str ); return 1; } /* cmd() */ /** @ignore yes */ mixed query_patterns() { return ({ "", (: cmd(0) :), "<string'leaders(s)|sage|afterlife|all'>", (: cmd($4[0]) :) }); } /* query_patterns() */