/* Do not remove the headers from this file! see /USAGE for more info. */
/*************************************************************
*
* guild.c
*
* Admtool interface for the guild daemon
*
* Coded by Aktah 1-28-00
*
*************************************************************/
#include <edit.h>
inherit "/obj/admtool/internal/base.c";
nomask string module_name()
{
return "guild";
}
nomask string module_key()
{
return "G";
}
private nomask void list_guilds()
{
string array guilds = sort_array(GUILD_D->query_guilds(), 1);
if(sizeof(guilds) == 0)
{
write("There are no guilds defined.\n");
return;
}
printf("%-18s%-40s\n%*'-'s\n", "Name", "Title", 58, "");
foreach(string guild in guilds)
{
printf("%-18s%-40s\n", capitalize(guild), capitalize(GUILD_D->query_guild_title(guild)));
}
}
private nomask void show_guild(string name)
{
string str, temp;
string array ary;
int i;
str = "Name: " + capitalize(name) + "\n";
str += "Title: " + GUILD_D->query_guild_title(name) + "\n";
str += "Prospectus: " + GUILD_D->query_guild_prospectus(name) + "\n";
ary = GUILD_D->query_guild_banned(name);
if(sizeof(ary))
{
temp = "Banned guilds: " + ary[0] + "\n";
for(i = 1; i < sizeof(ary); i++)
temp += " " + ary[i] + "\n";
str += temp;
}
ary = GUILD_D->query_guild_prereq(name);
if(sizeof(ary))
{
temp = "Prereq guilds: " + ary[0] + "\n";
for(i = 1; i < sizeof(ary); i++)
temp += " " + ary[i] + "\n";
str += temp;
}
ary = GUILD_D->query_guild_allies(name);
if(sizeof(ary))
{
temp = "Allied guilds: " + ary[0] + "\n";
for(i = 1; i < sizeof(ary); i++)
temp += " " + ary[i] + "\n";
str += temp;
}
ary = GUILD_D->query_guild_exclusive(name);
if(sizeof(ary))
{
temp = "Excluded Attributes: " + ary[0] + "\n";
for(i = 1; i < sizeof(ary); i++)
temp += " " + ary[i] + "\n";
str += temp;
}
ary = GUILD_D->query_guild_attributes(name);
if(sizeof(ary))
{
temp = "Attributes: " + ary[0] + "\n";
for(i = 1; i < sizeof(ary); i++)
temp += " " + ary[i] + "\n";
str += temp;
}
str += "Begone level: " + GUILD_D->query_guild_begone(name) + "\n";
str += "Suspend level: " + GUILD_D->query_guild_suspend(name) + "\n";
if(GUILD_D->query_guild_sees_secret(name))
str += "Sees secret.\n";
else
str += "Does not see secret.\n";
if(GUILD_D->query_guild_is_secret(name))
str += "Is secret.\n";
else
str += "Is not secret.\n";
if(GUILD_D->query_guild_need_all(name))
str += "Needs all prereqs.\n";
else
str += "Does not need all prereqs.\n";
write(str);
}
private nomask void add_guild(string name)
{
GUILD_D->guild_add(name);
printf("Guild %s has been added.\n", name);
}
private nomask void remove_guild(string name)
{
GUILD_D->guild_remove(name);
printf("Guild %s has been removed.\n", name);
}
private nomask void set_title2(string name, string title)
{
GUILD_D->set_guild_title(name, title);
}
private nomask void set_title(string name)
{
modal_simple( (: set_title2, name :), "Title? ");
}
private nomask void send_prospectus(string name, string array lines)
{
GUILD_D->set_guild_prospectus(name, implode(lines, " "));
}
private nomask void prospectus(string name)
{
write("Prospectus for guild " + name + ":\n");
new(EDIT_OB, EDIT_TEXT, 0, (: send_prospectus, name :));
}
private nomask void ban(string name, string guild)
{
if(!GUILD_D->query_guild_banned(name))
{
GUILD_D->set_guild_banned(name, guild);
return;
}
GUILD_D->set_guild_banned(name,
GUILD_D->query_guild_banned(name) + ({ guild }));
}
private nomask void prereq(string name, string guild)
{
if(!GUILD_D->query_guild_prereq(name))
{
GUILD_D->set_guild_prereq(name, guild);
return;
}
GUILD_D->set_guild_prereq(name,
GUILD_D->query_guild_prereq(name) + ({ guild }));
}
private nomask void ally(string name, string guild)
{
if(!GUILD_D->query_guild_allies(name))
{
GUILD_D->set_guild_allies(name, guild);
return;
}
GUILD_D->set_guild_allies(name,
GUILD_D->query_guild_allies(name) + ({ guild }));
}
private nomask void exclude(string name, string attr)
{
if(!GUILD_D->query_guild_exclusive(name))
{
GUILD_D->set_guild_exclusive(name, attr);
return;
}
GUILD_D->set_guild_exclusive(name,
GUILD_D->query_guild_exclusive(name) + ({ attr }));
}
private nomask void attrib(string name, string attr)
{
if(!GUILD_D->query_guild_attributes(name))
{
GUILD_D->set_guild_attributes(name, attr);
return;
}
GUILD_D->set_guild_attributes(name,
GUILD_D->query_guild_attributes(name) + ({ attr }));
}
private nomask void begone(string name, string level)
{
GUILD_D->set_guild_begone(name, to_int(level));
}
private nomask void suspend(string name, string level)
{
GUILD_D->set_guild_suspend(name, to_int(level));
}
private nomask void see_secret(string name)
{
if(GUILD_D->query_guild_sees_secret(name))
{
GUILD_D->set_guild_sees_secret(name, 0);
write(capitalize(name) + " no longer sees secret.\n");
}
else
{
GUILD_D->set_guild_sees_secret(name, 1);
write(capitalize(name) + " sees secret.\n");
}
}
private nomask void is_secret(string name)
{
if(GUILD_D->query_guild_is_secret(name))
{
GUILD_D->set_guild_is_secret(name, 0);
write(capitalize(name) + " is no longer secret.\n");
}
else
{
GUILD_D->set_guild_is_secret(name, 1);
write(capitalize(name) + " is secret.\n");
}
}
private nomask void need_all(string name)
{
if(GUILD_D->query_guild_need_all(name))
{
GUILD_D->set_guild_need_all(name, 0);
write(capitalize(name) + " no longer needs all prereqs.\n");
}
else
{
GUILD_D->set_guild_need_all(name, 1);
write(capitalize(name) + " needs all prereqs.\n");
}
}
nomask class command_info array module_commands()
{
return ({
new(class command_info,
key : "l",
desc : "list guilds",
action : (: list_guilds :)),
new(class command_info,
key : "v",
proto : "[name]",
desc : "View a guild",
args : ({ "Which guild? " }),
action : (: show_guild :)),
new(class command_info,
key : "g",
proto : "[name]",
desc : "Add a guild",
who : "[Mudlib]",
priv : "Mudlib",
args : ({ "What name? " }),
action : (: add_guild :)),
new(class command_info,
key : "r",
proto : "[name]",
desc : "Remove a guild",
who : "[Mudlib]",
priv : "Mudlib",
args : ({ "What name? " }),
action : (: remove_guild :)),
new(class command_info,
key : "t",
proto : "[name]",
desc : "Set a guild's title",
who : "[Mudlib]",
priv : "Mudlib",
args : ({ "What name? " }),
action : (: set_title :)),
new(class command_info,
key : "p",
proto : "[name]",
desc : "Set a guild's prospectus",
who : "[Mudlib]",
priv : "Mudlib",
args : ({ "What name? " }),
action : (: prospectus :)),
new(class command_info,
key : "b",
proto : "[name] [guild to be banned]",
desc : "Add to a guild's banned list",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? ", "Which guild? " }),
action : (: ban :)),
new(class command_info,
key : "P",
proto : "[name] [guild to be needed]",
desc : "Add to a guild's prereq list",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? ", "Which guild? " }),
action : (: prereq :)),
new(class command_info,
key : "A",
proto : "[name] [ally]",
desc : "Add to a guild's ally list",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? ", "Which guild? " }),
action : (: ally :)),
new(class command_info,
key : "e",
proto : "[name] [attribute]",
desc : "Add to guild's exclude list",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? ", "Which attribute? " }),
action : (: exclude :)),
new(class command_info,
key : "a",
proto : "[name] [attribute]",
desc : "Add to guild's attributes",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? ", "Which attribute? " }),
action : (: attrib :)),
new(class command_info,
key : "B",
proto : "[name] [level]",
desc : "Set a guild's begone level",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? ", "Begone level? " }),
action : (: begone :)),
new(class command_info,
key : "s",
proto : "[name] [level]",
desc : "Set a guild's suspend level",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? ", "Suspend level? " }),
action : (: suspend :)),
new(class command_info,
key : "S",
proto : "[name]",
desc : "Toggle a guild's sees_secret flag",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? "}),
action : (: see_secret :)),
new(class command_info,
key : "i",
proto : "[name]",
desc : "Toggle a guild's is_secret flag",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? "}),
action : (: is_secret :)),
new(class command_info,
key : "n",
proto : "[name]",
desc : "Toggle a guild's need_all flag",
who : "[Mudlib]",
priv : "Mudlib",
args : ({"What name? "}),
action : (: need_all :)),
});
}