Don't allow abbreviating administrative commands
authorJeremy Stanley <fungi@yuggoth.org>
Thu, 9 May 2019 20:19:50 +0000 (20:19 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Thu, 9 May 2019 20:19:50 +0000 (20:19 +0000)
If a command is flagged as administrative, don't match substring
abbreviations for it. For example, an admin entering "h" should get
the help summary, not halt the engine.

mudpy/misc.py

index 501d5b4..62501d4 100644 (file)
@@ -1486,8 +1486,10 @@ def find_command(command_name):
         command = universe.groups["command"][command_name]
     else:
         for candidate in sorted(universe.groups["command"]):
         command = universe.groups["command"][command_name]
     else:
         for candidate in sorted(universe.groups["command"]):
-            if candidate.startswith(command_name):
-                # the command matches the start of a command word
+            if candidate.startswith(command_name) and not universe.groups[
+                    "command"][candidate].get("administrative"):
+                # the command matches the start of a command word and is not
+                # restricted to administrators
                 command = universe.groups["command"][candidate]
                 break
     return command
                 command = universe.groups["command"][candidate]
                 break
     return command