From 9f3c3c5cb90d3c35970ed84ce7ba3a1b1ffd9b73 Mon Sep 17 00:00:00 2001 From: Rachel Blackman Date: Thu, 29 Mar 2018 18:02:45 -0700 Subject: [PATCH] Add 'INFO' command to unlogged-in command set, so that we can be polled by Mudconnector and Mudstats. --- evennia/commands/default/cmdset_unloggedin.py | 1 + evennia/commands/default/unloggedin.py | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/evennia/commands/default/cmdset_unloggedin.py b/evennia/commands/default/cmdset_unloggedin.py index 5e43d5e8c8..1c45d908aa 100644 --- a/evennia/commands/default/cmdset_unloggedin.py +++ b/evennia/commands/default/cmdset_unloggedin.py @@ -23,3 +23,4 @@ class UnloggedinCmdSet(CmdSet): self.add(unloggedin.CmdUnconnectedHelp()) self.add(unloggedin.CmdUnconnectedEncoding()) self.add(unloggedin.CmdUnconnectedScreenreader()) + self.add(unloggedin.CmdUnconnectedInfo()) diff --git a/evennia/commands/default/unloggedin.py b/evennia/commands/default/unloggedin.py index 429948b0fb..28c126e6d8 100644 --- a/evennia/commands/default/unloggedin.py +++ b/evennia/commands/default/unloggedin.py @@ -3,6 +3,7 @@ Commands that are available from the connect screen. """ import re import time +import datetime from collections import defaultdict from random import getrandbits from django.conf import settings @@ -11,8 +12,9 @@ from evennia.accounts.models import AccountDB from evennia.objects.models import ObjectDB from evennia.server.models import ServerConfig from evennia.comms.models import ChannelDB +from evennia.server.sessionhandler import SESSIONS -from evennia.utils import create, logger, utils +from evennia.utils import create, logger, utils, gametime from evennia.commands.cmdhandler import CMD_LOGINSTART COMMAND_DEFAULT_CLASS = utils.class_from_module(settings.COMMAND_DEFAULT_CLASS) @@ -516,6 +518,23 @@ class CmdUnconnectedScreenreader(COMMAND_DEFAULT_CLASS): self.session.sessionhandler.session_portal_sync(self.session) +class CmdUnconnectedInfo(COMMAND_DEFAULT_CLASS): + """ + Provides MUDINFO output, so that Evennia games can be added to Mudconnector + and Mudstats. + """ + key = "info" + locks = "cmd:all()" + + def func(self): + self.caller.msg("## BEGIN INFO 1.1") + self.caller.msg("Name: %s" % settings.SERVERNAME) + self.caller.msg("Uptime: %s" % datetime.datetime.fromtimestamp(gametime.SERVER_START_TIME).ctime()) + self.caller.msg("Connected: %d" % SESSIONS.account_count()) + self.caller.msg("Version: Evennia %s" % utils.get_evennia_version()) + self.caller.msg("## END INFO") + + def _create_account(session, accountname, password, permissions, typeclass=None, email=None): """ Helper function, creates an account of the specified typeclass.