/**
* Addevent - adds entries to the player info database.
*/
#include <creator.h>
#include <playerinfo.h>
#include <player_handler.h>
inherit "/cmds/base";
// Update the database with the data the user has entered
void update_database(string comment, string *data) {
if (comment == 0) {
return;
}
if (PLAYERINFO_HANDLER->add_entry(this_player(),
data[0],
data[1],
comment+"\n")) {
write(capitalize(data[0])+"'s dossier updated. \n");
} else {
write("Cannot update "+capitalize(data[0])+"'s dossier. \n");
}
} /* update_database() */
// Command entry point
int add_event(string player, string event, string comment) {
string *events;
string myself;
player = this_player()->expand_nickname(lower_case(player));
event = lower_case(event);
if (!PLAYER_HANDLER->test_user(player)) {
add_failed_mess("No such player: " + player + ".\n");
return 0;
}
myself = base_name(this_object());
events = filter(PLAYERINFO_HANDLER->query_events(),
(: PLAYERINFO_HANDLER->query_source_ok($1, $(myself)) :));
if (member_array(event, events) == -1) {
add_failed_mess("Incorrect event type '" + event +
"' it must be one of " +
query_multiple_short(events) + ".\n");
return 0;
}
if (comment != 0) {
update_database(comment, ({ player, event }));
return 1;
}
write("Please enter your comments:\n");
this_player()->do_edit(0, "update_database", this_object(), 0,
({ player, event }));
return 1;
} /* add_event() */
// Yet Anothr Command Entry Point (YACEP)
int list_events() {
string result;
string myself;
string *list;
result = "";
myself = base_name(this_object());
list = sort_array(
filter(PLAYERINFO_HANDLER->query_events(),
(: PLAYERINFO_HANDLER->query_source_ok($1, $(myself)) :)), 1);
write("The following events can be added using addevent: " +
query_multiple_short(list) + ". \n");
return 1;
} /* list_events() */
// Answer the command patterns
mixed *query_patterns()
{
return ({
"list",
(: list_events() :),
"<word'player-name'> <word'event'>",
(: add_event($4[0],$4[1],0) :),
"<word'player-name'> <word'event'> <string'comment'>",
(: add_event($4[0],$4[1],$4[2]) :)
});
}