From: Jeremy Stanley Date: Fri, 2 Oct 2020 19:59:45 +0000 (+0000) Subject: Add is_restricted boolean check for commands X-Git-Tag: 0.3.0~10 X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=commitdiff_plain;h=0de1cbedcdff936f461aa6b9421cb925295bba10 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. --- 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]