{"id":110,"date":"2012-05-12T11:06:40","date_gmt":"2012-05-12T11:06:40","guid":{"rendered":"http:\/\/tech.moosaico.com\/blog\/?p=110"},"modified":"2012-07-03T10:47:56","modified_gmt":"2012-07-03T09:47:56","slug":"share-your-moo-status-using-mssp","status":"publish","type":"post","link":"https:\/\/thejoyofstick.com\/blog\/2012\/05\/12\/share-your-moo-status-using-mssp\/","title":{"rendered":"Share your MOO status using MSSP"},"content":{"rendered":"<h2>Why supporting MSSP ?<\/h2>\n<p>But what is this MUD Server Status Protocol (MSSP) ? A simple introduction from the official <a title=\"MSSP (MUD Server Status Protocol)\" href=\"http:\/\/tintin.sourceforge.net\/mssp\/\" target=\"_blank\" rel=\"nofollow\">site<\/a>:<\/p>\n<blockquote><p>MUD listings are often out dated and lack accurate information. Verifying that the one submitting a new MUD is a member of the MUD&#8217;s administration can be quite tedious as well. The MUD Server Status Protocol seeks to address these issues by providing a transparant protocol for MUD crawlers to gather detailed information about a MUD, including dynamic information like boot time and the current amount of online players. It also makes submitting a new mud entry very simple because it only requires a player or admin to fill in the hostname and port.<\/p><\/blockquote>\n<p>This way you can have your status and statistics\u00a0automatically update on sites like <a title=\"MOOsaico Status\" href=\"http:\/\/mudstats.com\/World\/MOOsaico\" target=\"_blank\" rel=\"nofollow\">MUDStats.com<\/a><\/p>\n<h2>Let&#8217;s add that feature to my MOO<\/h2>\n<p>MSSP\u00a0is implemented as a Telnet option. It&#8217;s another way of saying that you would need a client and server that implemented it too. But we don&#8217;t want to hack the server code do we ?<\/p>\n<p>Fortunately the protocol also has a plaintext version! And it&#8217;s really simple and straightforward. Right after a new connection to your server, if you receive a MSSP-REQUEST command, just respond with the appropriate text lines with the status information.<\/p>\n<p>Assuming you have a LambdaMOO based database just create the command on <code>$login<\/code><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n@verb $login:MSSP-REQUEST this none this &quot;rxd&quot;\r\n<\/pre>\n<p>and program it:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n@program $login:MSSP-REQUEST\r\nif (caller != #0)\r\nreturn E_PERM;\r\nendif\r\nNAME = $network.MOO_name;\r\nPLAYERS = length(connected_players());\r\nUPTIME = $last_restart_time;\r\ntab = $string_utils.tab;\r\nnotify(player, &quot;&quot;);\r\nnotify(player, &quot;MSSP-REPLY-START&quot;);\r\n&quot;Required&quot;;\r\nnotify(player, tostr(&quot;NAME&quot;, tab, NAME));\r\nnotify(player, tostr(&quot;PLAYERS&quot;, tab, PLAYERS));\r\nnotify(player, tostr(&quot;UPTIME&quot;, tab, UPTIME));\r\nnotify(player, &quot;MSSP-REPLY-END&quot;);\r\n.\r\n<\/pre>\n<p>These are just the required fields. There are <a title=\"MSSP Variables\" href=\"http:\/\/tintin.sourceforge.net\/mssp\/index.php#VARIABLES\" target=\"_blank\" rel=\"nofollow\">many<\/a> variables you should implement.<\/p>\n<h2>Conclusion<\/h2>\n<p>Yes, that&#8217;s just like it. So simple it can&#8217;t be true. You now have a MSSP aware MOO world.<br \/>\nIf you want to see more variables on a real life server just <code>telnet moosaico.com 7777<\/code> and issue the <code>MSSP-REQUEST<\/code> command.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why supporting MSSP ? But what is this MUD Server Status Protocol (MSSP) ? A simple introduction from the official site: MUD listings are often out dated and lack accurate information. Verifying that the one submitting a new MUD is&hellip; <a href=\"https:\/\/thejoyofstick.com\/blog\/2012\/05\/12\/share-your-moo-status-using-mssp\/\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[9],"tags":[83,25,26,27],"class_list":["post-110","post","type-post","status-publish","format-standard","hentry","category-moo","tag-moo","tag-mssp","tag-mud","tag-stats"],"jetpack_shortlink":"https:\/\/wp.me\/pcmwlL-1M","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/posts\/110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/comments?post=110"}],"version-history":[{"count":11,"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/posts\/110\/revisions"}],"predecessor-version":[{"id":157,"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/posts\/110\/revisions\/157"}],"wp:attachment":[{"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/media?parent=110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/categories?post=110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thejoyofstick.com\/blog\/wp-json\/wp\/v2\/tags?post=110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}