/**
* Print info - prints playerinfo database entries for a given player.
* If the reason argument is given, print only entries referring to that
* event.
*
* @author Fiona
*/
#include <creator.h>
#include <playerinfo.h>
inherit COMMAND_BASE;
// Command entry point
int do_report(string player, string event)
{
string who = this_player()->expand_nickname(lower_case(player));
if(!"/secure/login"->test_user(who)) {
add_failed_mess("No such player: "+who+". \n");
return 0;
}
log_file("/secure/log/PLAYERINFO",
"%s: %s read dossier of %s.\n",
ctime(time()), this_player()->query_name(), who);
if(event == 0) {
PLAYERINFO_HANDLER->print_dossier(this_player(),who);
} else {
PLAYERINFO_HANDLER->print_event(this_player(),who,lower_case(event));
}
return 1;
}
// Yet Anothr Command Entry Point (YACEP)
int list_events()
{
string *list = sort_array(PLAYERINFO_HANDLER->query_events(),1);
string event, result = "";
// See a remark in addevent.c
foreach(event in list)
result += (event == list[0]) ? event : (", "+event);
write("The following events exist: "+result+". \n");
return 1;
}
int do_acknowledge( string player, string event, int idx, string update ) {
if( !(PLAYERINFO_HANDLER->is_alert( player, idx ) ) )
return notify_fail( "That event is not an alert, so cannot be "
"acknowledged.\n" );
if( !PLAYERINFO_HANDLER->acknowledge_alert( this_player(), player,
event, idx, update, 0 ) )
write( "You do not have the permission to acknowledge that alert, "
"or the event type is invalid.\n" );
else
write( "Event acknowledged.\n" );
return 1;
}
int list_alerts( int foo ) {
string * names;
if( foo )
names = PLAYERINFO_HANDLER->query_online_alerts();
else
names = keys( PLAYERINFO_HANDLER->query_alerts() );
if( !sizeof( names ) )
write( "There are no players with unacknowledged alerts.\n" );
else
write( "The following players have unacknowledged alerts: "
+ query_multiple_short( names ) + ".\n" );
return 1;
}
// Return the command pattern list.
mixed *query_patterns()
{
return ({
"list",
(: list_events() :),
"<word'player-name'>",
(: do_report($4[0],0) :),
"<word'player-name'> <word'event'>",
(: do_report($4[0],$4[1]) :),
"<word'player-name'> acknowledge <number'event-number'> "
"<string'update-string'>",
(: do_acknowledge( $4[0], "misc", $4[1], $4[2] ) :),
"<word'player-name'> acknowledge as <word:'event-type'> "
"<number'event-number'> <string'update-string'>",
(: do_acknowledge( $4[0], $4[1], $4[2], $4[3] ) :),
"list alerts",
(: list_alerts(0) :),
"list alerts online",
(: list_alerts(1) :)
});
}