@faraday, on SurfaceTension (a BluePlanet MOO that got delayed when various friends pulled me away to work on The Reach):
#7:2
":MSSP-REQUEST";
":";
":Provides in-band access to Mud Server Status Protocol (MSSP) data.";
try
set_connection_option(player, "binary", 1);
notify(player, "~0D~0AMSSP-REPLY-START~0D~0A");
for var in ($mssp_data())
notify(player, $list:join("~09", @var) + "~0D~0A");
endfor
notify(player, "MSSP-REPLY-END~0D~0A");
finally
set_connection_option(player, "binary", 0);
endtry
return $nothing;
.
and then $mssp_data() was
#0:7
dbsize = 0;
helpfiles = 0;
rooms = 0;
exits = 0;
descs = 0;
progs = 0;
triggers = 0;
for o in [#0..max_object()]
if (valid(o))
dbsize = dbsize + 1;
if ("description" in properties(o))
descs = descs + 1;
endif
if (parent(o) in {#17, #18})
rooms = rooms + 1;
endif
vind = 1;
for v in (verbs(o))
progs = progs + 1;
if (verb_args(o, vind) != $tnt)
triggers = triggers + 1;
while (tpos = index(v, " "))
v = v[tpos + 1..$];
triggers = triggers + 1;
endwhile
endif
vind = vind + 1;
endfor
endif
endfor
return {{"NAME", "SurfaceTension"}, {"PLAYERS", tostr(length(connected_players()))}, {"UPTIME", tostr($boot_time)}, {"CRAWL DELAY", "1"}, {"HOSTNAME", "surfacetension.accela.net"}, {"PORT", "7777"}, {"CODEBASE", "LambdaMOO 1.8.2-cvs20050209-5"}, {"CONTACT", "surfacetension-mssp-1@accela.net"}, {"CREATED", "2009"}, {"IP", "66.220.1.33"}, {"LANGUAGE", "English"}, {"LOCATION", "United States"}, {"MINIMUM AGE", "18"}, {"WEBSITE", "http://surfacetension.accela.net/"}, {"FAMILY", "MOO"}, {"GENRE", "Science Fiction"}, {"GAMEPLAY", "Roleplaying"}, {"STATUS", "Alpha"}, {"GAMESYSTEM", "Synergy"}, {"SUBGENRE", "Blue Planet"}, {"HELPFILES", tostr(helpfiles)}, {"ROOMS", tostr(rooms)}, {"ANSI", "1"}, {"VT100", "1"}, {"DBSIZE", tostr(dbsize)}, {"EXITS", tostr(exits)}, {"EXTRA DESCRIPTIONS", tostr(descs)}, {"MUDPROGS", tostr(progs)}, {"MUDTRIGS", tostr(triggers)}, {"ADULT MATERIAL", "0"}, {"MULTIPLAYING", "Restricted"}, {"PLAYERKILLING", "Restricted"}, {"QUEST SYSTEM", "None"}, {"Roleplaying", "Enforced"}, {"WORLD ORIGINALITY", "Mostly Stock"}, {"SSL", "0"}, {"ZMP", "0"}};
.
In summary:
MSSP-REPLY-START
(lines of tab-separated key-value pairs)
MSSP-REPLY-END
With CRLF line terminators.
The above code is wonky garbage and e.g. always returns zero exits as I never got around to making exits for that moocore. Yes, really. ._.
We should probably type this up into a revised spec, if the odd case anyone still cares about mssp...