/* Do not remove the headers from this file! see /USAGE for more info. */
inherit "/obj/admtool/internal/base.c";
inherit CLASS_ALIAS;
nomask string module_name() {
return "alias";
}
nomask string module_key() {
return "a";
}
nomask string module_user() {
return "[Mudlib:daemons]";
}
nomask string module_priv() {
return "Mudlib:daemons";
}
private nomask void add_alias(string name,
string expansion,
int dev,
string xinfo)
{
int xverb;
switch ( xinfo )
{
case "y":
xverb = 1;
break;
case "":
case 0:
case "n":
break;
default:
write("**Invalid selection.\n");
return;
}
do_modal_func();
ALIAS_D->add_default_alias(name, expansion, xverb, dev);
write("Done.\n");
}
private nomask void handle_l(string cmd) {
string a;
mixed alias_info;
string* xaliases;
class alias val;
string output;
int i;
mapping aliases;
alias_info = ALIAS_D->query_default_aliases();
if(cmd == "L") {
aliases = alias_info[2];
xaliases = alias_info[3];
}
else {
aliases = alias_info[0];
xaliases=alias_info[1];
}
output = sprintf("Alias:%9sExpansion:%29sDefaults:\n","","");
output += repeat_string("-", 77) + "\n";
// foreach (a, val in aliases)
foreach(a in sort_array(keys(aliases),1))
{
val=aliases[a];
output += sprintf("%-14s %-38s ", a, val->template);
if(sizeof(val->defaults) == 1 && val->defaults[0] == "")
output += "\n";
else
{
output += "$*: " + val->defaults[0] + "\n";
for(i=1;i<sizeof(val->defaults);i++)
output += sprintf("%54s$%d: %s\n","",i,val->defaults[i]);
}
}
more(output);
}
private nomask void handle_a(string cmd, string name,string expansion) {
int type;
if(cmd == "a")
type=0;
else
type=1;
modal_func((: add_alias, name, expansion, type :),
"Xalias? [yn (default n)] ");
}
private nomask void handle_r(string cmd, string input) {
mixed alias_info;
if(cmd == "r")
alias_info = ALIAS_D->query_default_aliases()[0];
else
alias_info = ALIAS_D->query_default_aliases()[2];
if(undefinedp(alias_info[input]))
{
if(cmd == "r")
printf("%s wasn't a player alias.\n", input);
else
printf("%s wasn't a wizard alias.\n", input);
return;
}
if(cmd == "r")
ALIAS_D->remove_default_alias(input);
else
ALIAS_D->remove_default_alias(input,1);
write("Done.\n");
}
nomask class command_info array module_commands() {
return ({
new(class command_info,
key : "l",
action : (: handle_l, "l" :),
desc : "list global player aliases"),
new(class command_info,
key : "L",
action : (: handle_l, "L" :),
desc : "list global wizard aliases"),
new(class command_info,
key : "a",
proto : "[alias [expansion]]",
args : ({ "Alias: ", "Expansion: "}),
action : (: handle_a, "a" :),
desc : "add a global player alias"),
new(class command_info,
key : "A",
action : (: handle_a, "A" :),
args : ({"Alias: ","Expansion: "}),
proto : "[alias [expansion]]",
desc : "add a global wizard alias"),
new(class command_info,
key : "r",
proto : "[alias]",
args: ({"Alias: "}),
action : (: handle_r, "r" :),
desc : "remove a global player alias"),
new(class command_info,
key : "R",
action : (: handle_r, "R" :),
proto : "[alias]",
args: ({"Alias: "}),
desc : "remove a global wizard alias")
});
}