/**
* A nice clump of friends to take you out and buy you drinks.
* @author Pinkfish
* @started Mon Mar 12 22:21:23 PST 2001
*/
#include <player.h>
#include <player_handler.h>
#include <cmds/friends.h>
private mapping _friends;
void create() {
_friends = ([ ]);
} /* create() */
/**
* This method checks to see if the specified person is a friend or not.
* @param person the person to check
* @return 1 if they are a friend, 0 if not
*/
int is_friend(string person) {
if (!_friends) {
_friends = ([ ]);
}
return stringp(_friends[person]);
} /* is_friend() */
/**
* This method returns the tag associated with the friend.
* @param person the person to get the information on
* @return the string of their friendship tag
*/
string query_friend_tag(string person) {
if(!interactive(previous_object()))
return _friends[person];
if(previous_object()->query_name())
log_file("CHEAT", "%s query_friend_tag called on %s by %s\n",
ctime(time()), this_object()->query_name(),
previous_object()->query_name());
else
log_file("CHEAT", "%s query_friend_tag called on %s by %s\n",
ctime(time()), this_object()->query_name(),
file_name(previous_object()));
return "";
} /* query_friend_tag() */
/**
* This method adds a friend to the list.
* @param person the friend to add
* @param tag the tag to add
*/
void add_friend(string person, string tag) {
if (strlen(tag) > PLAYER_MAX_FRIEND_TAG_LEN) {
return ;
}
if (!PLAYER_HANDLER->test_user(person)) {
return ;
}
_friends[person] = tag;
} /* add_friend() */
/**
* This method removes a friend from the list.
* @param person the person to remove
*/
void remove_friend(string person) {
map_delete(_friends, person);
} /* remove_friend() */
/**
* This method returns the current bunch of friends for this player.
*/
string* query_friends() {
if (file_name(previous_object()) == FRIENDS_CMD) {
return keys(_friends);
}
if(previous_object()->query_name())
log_file("CHEAT", "%s query_friends called on %s by %s\n",
ctime(time()), this_object()->query_name(),
previous_object()->query_name());
else
log_file("CHEAT", "%s query_friends called on %s by %s\n",
ctime(time()), this_object()->query_name(),
file_name(previous_object()));
return ({ });
} /* query_friends() */