/* command, trial out by Turrican for a commands daemon. */
inherit COMMAND_BASE;
int print_nicknames(mapping map_nicknames);
int add_nickname(string str, mapping map_nicknames);
int print_single_nickname(string str) {
mapping map_nicknames;
map_nicknames = previous_object()->query_nicknames();
if (!map_nicknames) {
map_nicknames = ([ ]);
}
str = lower_case(str);
if(!map_nicknames[str]) {
add_failed_mess("That nickname does not exist.\n");
return 0;
}
write("Setting for nickname "+str+" is "+map_nicknames[str]+".\n");
return 1;
} /* print_single_nickname() */
int print_nicknames(int sorted) {
int i;
int cols;
string str;
string str_long;
string str_middle;
string str_small;
string bit;
string *tmp;
mapping map_nicknames;
map_nicknames = previous_object()->query_nicknames();
bit = "";
str_long = "";
str_middle = "";
str_small = "";
if (!map_nicknames) {
map_nicknames = ([ ]);
}
tmp = sort_array(keys(map_nicknames), 1);
cols = (int)this_player()->query_cols();
for (i=0;i<sizeof(tmp);i++) {
str = tmp[i]+": "+map_nicknames[tmp[i]]+" ";
if (strlen(str) > 39 || sorted) {
str_long += sprintf(tmp[i]+": %-=*s\n", cols - strlen(tmp[i]), map_nicknames[tmp[i]]);
} else if (strlen(str) > 19) {
str_middle += str+"\n";
} else {
str_small += str+"\n";
}
}
if (strlen(str_middle)) {
str_long += sprintf("%-#*s\n", cols, str_middle);
}
if (strlen(str_small)) {
str_long += sprintf("%-#*s\n", cols, str_small);
}
this_player()->more_string(str_long, "Nicknames");
return 1;
} /* print_nicknames() */
int add_nickname(string s1, string s2) {
mapping map_nicknames;
map_nicknames = previous_object()->query_nicknames();
if (!map_nicknames) {
map_nicknames = ([ ]);
}
if (!map_nicknames[s1]) {
map_nicknames[s1] = s2;
write("Added nickname "+s1+" as "+s2+".\n");
return 1;
}
write("Changed nickname "+s1+" from "+map_nicknames[s1]+" to "+s2+".\n");
map_nicknames[s1] = s2;
this_player()->set_nicknames(map_nicknames);
return 1;
} /* add_nickname() */
mixed* query_patterns() {
return ({ "", (: print_nicknames(0) :),
"sorted", (: print_nicknames(1) :),
"<string'nickname'>", (: print_single_nickname($4[0]) :),
"<string'nickname'> <string'realname'>", (: add_nickname($4[0], $4[1]) :)
});
} /* query_patterns() */