/* -*- LPC -*- */
/*
* $Id: liaison_s.c,v 1.4 2000/01/18 00:23:45 turrican Exp $
*/
inherit "/cmds/base";
private string idle_time(object person) {
int hours, mins, secs;
string s, m, h;
secs = query_idle(person);
mins = secs / 60;
secs %= 60;
hours = mins / 60;
mins %= 60;
s = ("0"+secs)[<2..<1];
m = ("0"+mins)[<2..<1];
if ( !hours ) {
return " (idle: "+m+":"+s+")";
}
h = ("0"+hours)[<2..<1];
return " (idle: "+h+":"+m+":"+s+")";
} /* idle_time() */
mixed cmd( ) {
int i, j;
string *members, *member_alias, *aliases;
object person;
members = (string *)"/d/liaison/master"->query_members();
aliases = ({ });
i = sizeof( members );
while ( i-- ) {
person = find_player( members[ i ] );
if ( ! person ) {
member_alias = "/d/liaison/master"->member_alias( members[ i ] );
j = sizeof( member_alias );
while ( j-- ) {
if ( find_player( member_alias[ j ] ) ) {
aliases += ({ capitalize( member_alias[ j ] ) +"("+
capitalize( members[ i ] ) +")" });
}
}
members = delete( members, i, 1 );
} else if (!person) {
members = delete(members, i, 1);
} else {
if ( !interactive( person ) ) {
members = delete( members, i, 1 );
} else {
members[ i ] = capitalize( members[ i ] );
switch( person->query_invis() ) {
case 0:
break;
case 1:
members[ i ] = sprintf( "(%s)", members[ i ] );
break;
case 2:
members[ i ] = sprintf( "({%s})", members[ i ] );
break;
default:
members[ i ] = sprintf( "([%s])", members[ i ] );
break;
}
members[ i ] = capitalize( members[ i ] );
if (person->query_busy()) {
members[ i ] += " (busy)";
}
if ( query_idle( person ) > 120 ) {
members[ i ] += idle_time( person );
}
}
}
}
if ( this_player()->query_creator() || !sizeof( members )) {
members += aliases;
}
if ( !sizeof( members ) ) {
add_failed_mess( "There are no Liaison creators currently logged on.\n" );
return 0;
}
if ( sizeof( members ) > 1 ) {
write( "Liaison creators logged on are "+
query_multiple_short( members ) +".\n" );
} else {
write( "The only Liaison creator logged on is "+ members[ 0 ] +".\n" );
}
return 1;
} /* cmd() */
mixed *query_patterns() {
return ({ "", (: cmd() :) });
} /* query_patterns() */