/* Do not remove the headers from this file! see /USAGE for more info. */
//:COMMAND
//$$see: mudlist
//USAGE: mudinfo <mudname>
//
//This command will give you specific information about a mud.
//
//mudinfo ideaexchange
//
//I d e a E x c h a n g e
//___________________________________
//Type: LPMud
//Address: 199.199.122.10 7890
//Current Mudlib: Foundation IIr1
//Base Mudlib: Foundation IIr1
//Status: Up
//Open Status: open for public
//TCP Imud port: 7895
//UDP Imud port: 7898
//Services available: tell, who, rcp, http, locate, ftp, channel, finger
//
//Driver: MudOS v21.6a10
//
//This command can also be accessed through the menu.
//
//In order for this to be available, both this mud and the target mud must
//have been connected to the intermud 3 server at the same time.
//The information is saved, so it is not necessary for either mud to be
//currently connected, but the information could be out-of-date in such
//circumstances.
inherit CMD;
inherit M_REGEX;
inherit M_GLOB;
private void main(string arg)
{
mapping mudlist = IMUD_D->query_mudlist();
string* muds = keys(mudlist);
string* matches;
string match;
mixed* mudinfo;
if(!arg || arg == "")
{
arg = mud_name();
}
matches = insensitive_regexp(muds, "^"+translate(arg));
if(!sizeof(matches))
{
printf("No muds out of %d match that pattern.\n", sizeof(mudlist));
return;
}
matches = sort_array(matches,1);
foreach(match in matches)
{
mudinfo = mudlist[match];
out(implode(explode(match,"")," ") + "\n");
out("___________________________________\n");
out(sprintf("Type: %s\n", mudinfo[8]));
out(sprintf("Address: %s %d\n", mudinfo[1], mudinfo[2]));
out(sprintf("Current Mudlib: %s\n", mudinfo[5]));
out(sprintf("Base Mudlib: %s\n", mudinfo[6]));
out(sprintf("Driver: %s\n", mudinfo[7]));
out("Status: ");
if(mudinfo[0] == -1)
{
out("Up\n");
}
else if(!mudinfo[0])
{
out("Down\n");
}
else
{
out(sprintf("Down (Expected up in %d minutes)\n",
(mudinfo[0]+60)/60));
}
out(sprintf("Open Status: %s\n", mudinfo[9]));
out(sprintf("Admin email: %s\n", mudinfo[10]));
out(sprintf("TCP Imud port: %d\n", mudinfo[3]));
out(sprintf("UDP Imud port: %d\n", mudinfo[4]));
out("Services available: ");
if(!sizeof(mudinfo[11]))
out("None given\n");
else
out(implode(sort_array(keys(mudinfo[11]) - ({ 0 }), 1), ", ") + "\n");
if ( mudinfo[12] )
out("Other data: " + implode(keys(mudinfo[12]), ", ") + "\n");
out("\n");
}
}