Log User object ID even when account is an admin
[mudpy.git] / mudpy / misc.py
index 045e6a5..eea2f00 100644 (file)
@@ -457,10 +457,8 @@ class Universe:
         self.listening_socket.listen(1)
 
         # note that we're now ready for user connections
-        log(
-            "Listening for Telnet connections on: " +
-            host + ":" + str(port)
-        )
+        log("Listening for Telnet connections on %s port %s" % (
+                host, str(port)))
 
     def get_time(self):
         """Convenience method to get the elapsed time counter."""
@@ -639,14 +637,13 @@ class User:
         """Flag the user as authenticated and disconnect duplicates."""
         if self.state != "authenticated":
             self.authenticated = True
+            log("User %s authenticated for account %s." % (
+                    self, self.account.subkey), 2)
             if ("mudpy.limit" in universe.contents and self.account.subkey in
                     universe.contents["mudpy.limit"].get("admins")):
                 self.account.set("administrator", True)
-                log("Administrator %s authenticated." %
-                    self.account.get("name"), 2)
-            else:
-                log("User %s authenticated for account %s." % (
-                        self, self.account.subkey), 2)
+                log("Account %s is an administrator." % (
+                        self.account.subkey), 2)
 
     def show_menu(self):
         """Send the user their current menu."""
@@ -1893,12 +1890,14 @@ def handler_active(user):
         if actor.can_run(command):
             # dereference the relative object path for the requested function
             action = mudpy
-            for component in command.get("action").split("."):
+            action_fname = command.get("action", command.key)
+            for component in action_fname.split("."):
                 try:
                     action = getattr(action, component)
                     ran = True
                 except AttributeError:
-                    log('Could not find action function for command "%s"')
+                    log('Could not find action function "%s" for command "%s"'
+                        % (action_fname, command_name))
                     action = None
                     break
             if action:
@@ -1909,6 +1908,7 @@ def handler_active(user):
                         'exception...\n%s' % (
                             input_data, actor.owner.account.get("name"),
                             traceback.format_exc()))
+                    mudpy.command.error(actor, input_data)
 
         # if the command was not run, give an error
         if not ran:
@@ -2077,8 +2077,9 @@ def setup():
     log("Import path: %s" % ", ".join(sys.path), 1)
     log("Installed dependencies: %s" % universe.versions.dependencies_text, 1)
     log("Other python packages: %s" % universe.versions.environment_text, 1)
-    log("Started %s with command line: %s" % (
-        universe.versions.version, " ".join(sys.argv)), 1)
+    log("Running version: %s" % universe.versions.version, 1)
+    log("Initial directory: %s" % universe.startdir, 1)
+    log("Command line: %s" % " ".join(sys.argv), 1)
 
     # pass the initialized universe back
     return universe