lima-1.0b5/
lima-1.0b5/driver/
lima-1.0b5/driver/ChangeLog.old/
lima-1.0b5/driver/Win32/
lima-1.0b5/driver/compat/
lima-1.0b5/driver/include/
lima-1.0b5/driver/testsuite/
lima-1.0b5/driver/testsuite/clone/
lima-1.0b5/driver/testsuite/command/
lima-1.0b5/driver/testsuite/data/
lima-1.0b5/driver/testsuite/etc/
lima-1.0b5/driver/testsuite/include/
lima-1.0b5/driver/testsuite/inherit/
lima-1.0b5/driver/testsuite/inherit/master/
lima-1.0b5/driver/testsuite/log/
lima-1.0b5/driver/testsuite/single/
lima-1.0b5/driver/testsuite/single/tests/compiler/
lima-1.0b5/driver/testsuite/single/tests/efuns/
lima-1.0b5/driver/testsuite/single/tests/operators/
lima-1.0b5/driver/testsuite/u/
lima-1.0b5/driver/tmp/
lima-1.0b5/etc/
lima-1.0b5/lib/WWW/help/
lima-1.0b5/lib/cmds/
lima-1.0b5/lib/cmds/create/
lima-1.0b5/lib/cmds/player/attic/
lima-1.0b5/lib/contrib/bboard/
lima-1.0b5/lib/contrib/boards/
lima-1.0b5/lib/contrib/marriage/
lima-1.0b5/lib/contrib/roommaker/
lima-1.0b5/lib/contrib/transient_effect/
lima-1.0b5/lib/daemons/channel/
lima-1.0b5/lib/daemons/imud/
lima-1.0b5/lib/data/
lima-1.0b5/lib/data/config/
lima-1.0b5/lib/data/links/
lima-1.0b5/lib/data/news/
lima-1.0b5/lib/data/players/
lima-1.0b5/lib/data/secure/
lima-1.0b5/lib/domains/
lima-1.0b5/lib/domains/std/2.4.5/maze1/
lima-1.0b5/lib/domains/std/2.4.5/npc/
lima-1.0b5/lib/domains/std/2.4.5/post_dir/
lima-1.0b5/lib/domains/std/2.4.5/sub/
lima-1.0b5/lib/domains/std/camera/
lima-1.0b5/lib/domains/std/config/
lima-1.0b5/lib/domains/std/cult/
lima-1.0b5/lib/domains/std/effects/
lima-1.0b5/lib/domains/std/misc/
lima-1.0b5/lib/domains/std/monsters/
lima-1.0b5/lib/domains/std/recorder/
lima-1.0b5/lib/domains/std/rooms/
lima-1.0b5/lib/domains/std/rooms/beach/
lima-1.0b5/lib/domains/std/rooms/labyrinth/
lima-1.0b5/lib/domains/std/school/
lima-1.0b5/lib/domains/std/school/O/
lima-1.0b5/lib/domains/std/spells/
lima-1.0b5/lib/domains/std/spells/stock-mage/
lima-1.0b5/lib/domains/std/spells/stock-priest/
lima-1.0b5/lib/help/
lima-1.0b5/lib/help/admin/
lima-1.0b5/lib/help/hints/General_Questions/
lima-1.0b5/lib/help/hints/Pirate_Quest/
lima-1.0b5/lib/help/player/
lima-1.0b5/lib/help/player/bin/
lima-1.0b5/lib/help/player/quests/
lima-1.0b5/lib/help/wizard/
lima-1.0b5/lib/help/wizard/coding/guilds/
lima-1.0b5/lib/help/wizard/coding/rooms/
lima-1.0b5/lib/help/wizard/lib/daemons/
lima-1.0b5/lib/help/wizard/lib/lfun/
lima-1.0b5/lib/help/wizard/lib/std/
lima-1.0b5/lib/help/wizard/mudos_doc/
lima-1.0b5/lib/help/wizard/mudos_doc/applies/
lima-1.0b5/lib/help/wizard/mudos_doc/applies/interactive/
lima-1.0b5/lib/help/wizard/mudos_doc/applies/parsing/
lima-1.0b5/lib/help/wizard/mudos_doc/concepts/
lima-1.0b5/lib/help/wizard/mudos_doc/driver/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/arrays/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/buffers/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/compile/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/filesystem/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/floats/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/functions/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/general/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/mappings/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/mixed/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/numbers/
lima-1.0b5/lib/help/wizard/mudos_doc/efuns/parsing/
lima-1.0b5/lib/help/wizard/mudos_doc/lpc/constructs/
lima-1.0b5/lib/help/wizard/mudos_doc/lpc/types/
lima-1.0b5/lib/include/driver/
lima-1.0b5/lib/log/
lima-1.0b5/lib/obj/admtool/
lima-1.0b5/lib/obj/admtool/internal/
lima-1.0b5/lib/obj/admtool/mudinfo/
lima-1.0b5/lib/obj/admtool/secure/
lima-1.0b5/lib/obj/secure/
lima-1.0b5/lib/obj/secure/cmd/
lima-1.0b5/lib/obj/secure/mailers/
lima-1.0b5/lib/obj/secure/shell/
lima-1.0b5/lib/obj/secure/shell/classes/
lima-1.0b5/lib/obj/tasktool/
lima-1.0b5/lib/obj/tasktool/internal/
lima-1.0b5/lib/open/
lima-1.0b5/lib/secure/
lima-1.0b5/lib/secure/cgi/
lima-1.0b5/lib/secure/modules/
lima-1.0b5/lib/secure/simul_efun/
lima-1.0b5/lib/std/adversary/
lima-1.0b5/lib/std/adversary/advancement/
lima-1.0b5/lib/std/adversary/armor/
lima-1.0b5/lib/std/adversary/blows/
lima-1.0b5/lib/std/adversary/death/
lima-1.0b5/lib/std/adversary/formula/
lima-1.0b5/lib/std/adversary/health/
lima-1.0b5/lib/std/adversary/pulse/
lima-1.0b5/lib/std/adversary/wield/
lima-1.0b5/lib/std/classes/event_info/
lima-1.0b5/lib/std/container/
lima-1.0b5/lib/std/living/
lima-1.0b5/lib/std/modules/contrib/
lima-1.0b5/lib/std/patterns/
lima-1.0b5/lib/std/race/
lima-1.0b5/lib/std/race/restricted/
lima-1.0b5/lib/std/room/
lima-1.0b5/lib/tmp/
lima-1.0b5/lib/trans/
lima-1.0b5/lib/trans/admincmds/
lima-1.0b5/lib/trans/obj/
lima-1.0b5/lib/wiz/
/* 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")
            });
}