// Petrarch // Merentha Lib 1.0 // <nickname> string help() { return "\ Syntax: nickname - lists all nicknames\n\ nickname <nick> - shows what <nick> is aliased to\n\ nickname add <nick> <long> - creates nickname\n\ nickname remove <nick> - removes a nickname\n\ \n\ Nicknames are used to help you type in short hand. You can create an nickname as follows:\n\ > nickname add petr Petrarch\n\ \n\ Now whenever you type 'say Hi petr' it is just like typing 'say Hi Petrarch'.\n\ \n\ See also: alias\ "; } int display_aliases() { mapping aliases=([]); string *k, *ret=({}); int i, max=0, lines; lines=(this_player()->getenv("SCREEN")?this_player()->getenv("SCREEN"):75); aliases=this_player()->query_nickname(); if(!aliases) this_player()->init_nicknames(); aliases=this_player()->query_nickname(); if(!aliases) aliases=([]); i=sizeof(k=sort_array(keys(aliases),-1)); while(i--) if(strlen(k[i])>max) max=strlen(k[i]); i=sizeof(k); while(i--) ret+=({"%^RED%^"+arrange_string(k[i],max)+": %^ORANGE%^"+aliases[k[i]]+" "}); i=sizeof(ret); while(i--) if(strlen(strip_colours(ret[i]))>max) max=strlen(strip_colours(ret[i])); if(max) { max=lines/max; this_player()->more(border(format_page(ret,max,lines-4),"nickname",lines )); } else message("command", "You have no nicknames set.", this_player()); return 1; } varargs int command(string str) { string word, alias; if(!str) return display_aliases(); if(sscanf(str, "add %s %s", word, alias)==2) { this_player()->add_nickname(word, alias); message("command", "Nickname added: "+word+" -> "+alias, this_player()); return 1; } else { if(sscanf(str, "remove %s", word)==1) { this_player()->remove_nickname(word); message("command", "Nickname: "+word+" removed.", this_player()); return 1; } else { alias=this_player()->query_nickname(str); if(!alias) message("command", "Nickname for "+str+" not found.", this_player()); else message("command", "Nickname: "+str+" -> "+alias, this_player()); return 1; } } }