From 0de1cbedcdff936f461aa6b9421cb925295bba10 Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Fri, 2 Oct 2020 19:59:45 +0000 Subject: [PATCH] Add is_restricted boolean check for commands In preparation for adding additional command restriction indicators, add a simple Element class method to return whether a command element is flagged as administrative. --- mudpy/command.py | 6 +++--- mudpy/misc.py | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/mudpy/command.py b/mudpy/command.py index bd473e5..279da78 100644 --- a/mudpy/command.py +++ b/mudpy/command.py @@ -171,7 +171,7 @@ def help(actor, parameters): description = command.get("description") if not description: description = "(no short description provided)" - if command.get("administrative"): + if command.is_restricted(): output = "$(red)" else: output = "$(grn)" @@ -194,7 +194,7 @@ def help(actor, parameters): if actor.can_run(command): if really_see_also: really_see_also += ", " - if command.get("administrative"): + if command.is_restricted(): really_see_also += "$(red)" else: really_see_also += "$(grn)" @@ -244,7 +244,7 @@ def help(actor, parameters): "description", "(no short description provided)") # administrative command names are in red, others in green - if command.get("administrative"): + if command.is_restricted(): color = "red" else: color = "grn" diff --git a/mudpy/misc.py b/mudpy/misc.py index e737a28..babd42f 100644 --- a/mudpy/misc.py +++ b/mudpy/misc.py @@ -184,6 +184,10 @@ class Element: prepend_padding ) + def is_restricted(self): + """Boolean check whether command is administrative or debugging.""" + return(self.get("administrative", False)) + def is_admin(self): """Boolean check whether an actor is controlled by an admin owner.""" return(self.owner and self.owner.is_admin()) @@ -200,7 +204,7 @@ class Element: return(True) # everyone can run non-administrative commands - if not command.get("administrative"): + if not command.is_restricted(): return(True) # otherwise the command cannot be run by this actor @@ -1506,7 +1510,7 @@ def find_command(command_name): else: for candidate in sorted(universe.groups["command"]): if candidate.startswith(command_name) and not universe.groups[ - "command"][candidate].get("administrative"): + "command"][candidate].is_restricted(): # the command matches the start of a command word and is not # restricted to administrators command = universe.groups["command"][candidate] -- 2.11.0