#include <lib.h>
void help();

inherit LIB_DAEMON;

int cmd(string str) {
    string ret, *ret_arr;
    switch(str){
        case "weap" : str = "weap";break;
        case "weapons" : str = "weap";break;
        case "weapon" : str = "weap";break;
        case "ob" : str = "obj";break;
        case "obs" : str = "obj";break;
        case "objs" : str = "obj";break;
        case "objects" : str = "obj";break;
        case "object" : str = "obj";break;
        case "meals" : str = "meal";break;
        case "npcs" : str = "npc";break;
        case "mob" : str = "npc";break;
        case "mobs" : str = "npc";break;
        case "mon" : str = "npc";break;
        case "monster" : str = "npc";break;
        case "monsters" : str = "npc";break;
        case "rooms" : str = "room";break;
        case "arm" : str = "armor";break;
        case "armors" : str = "armor";break;
    }

    if(!sizeof(str)){
        help();
        return 1;
    }

    write("Category selected: "+str);
    str = homedir(this_player()) + "/area/" + str;

    if(!directory_exists(homedir(this_player()) + "/area")){
        write(homedir(this_player()) + "/area/ does not exist!");
        return 1;
    }

    if(!directory_exists(str)){
        write(str + " does not exist!");
        return 1;
    }

    ret_arr = sort_array(get_dir(str + "/"),1);
    ret = "";

    foreach(string element in ret_arr){
        if(last(element,2) == ".c"){
            element = truncate(element,2);
            ret += element + "\n";
        }
    }

    if(!sizeof(ret)){
        write("No files.");
        return 1;
    }

    this_player()->eventPage( ({ ret }) );
    return 1;
}


void help() {
    message("help", "Syntax: arealist [ npc | room | weapon | armor | obj ]\n\n"
            "Provides a list of the available files in a given category "
            "that are under the control of the builder issuing the command. "
            "For example, to see the list of rooms belonging to a builder, "
            "she might issue the command: arealist room\n\n"
            "See also: areaclone, areagoto\n",
            this_player());
}
