Merge pull request #3751 from EliasWatson/commands-without-account

Handle missing account in Command
This commit is contained in:
Griatch 2025-04-26 12:04:06 +02:00 committed by GitHub
commit f533a2737a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 31 additions and 11 deletions

View file

@ -623,6 +623,22 @@ Command \"{cmdname}\" has no defined `func()` method. Available properties on th
)[0]
return settings.CLIENT_DEFAULT_WIDTH
def _get_account_option(self, option):
"""
Retrieve the value of a specified account option.
Args:
option (str): The name of the option to retrieve.
Returns:
The value of the specified account option if the account exists,
otherwise the default value from settings.OPTIONS_ACCOUNT_DEFAULT.
"""
if self.account:
return self.account.options.get(option)
return settings.OPTIONS_ACCOUNT_DEFAULT.get(option)
def styled_table(self, *args, **kwargs):
"""
Create an EvTable styled by on user preferences.
@ -638,8 +654,8 @@ Command \"{cmdname}\" has no defined `func()` method. Available properties on th
or incomplete and ready for use with `.add_row` or `.add_collumn`.
"""
border_color = self.account.options.get("border_color")
column_color = self.account.options.get("column_names_color")
border_color = self._get_account_option("border_color")
column_color = self._get_account_option("column_names_color")
colornames = ["|%s%s|n" % (column_color, col) for col in args]
@ -699,9 +715,9 @@ Command \"{cmdname}\" has no defined `func()` method. Available properties on th
"""
colors = dict()
colors["border"] = self.account.options.get("border_color")
colors["headertext"] = self.account.options.get("%s_text_color" % mode)
colors["headerstar"] = self.account.options.get("%s_star_color" % mode)
colors["border"] = self._get_account_option("border_color")
colors["headertext"] = self._get_account_option("%s_text_color" % mode)
colors["headerstar"] = self._get_account_option("%s_star_color" % mode)
width = width or self.client_width()
if edge_character:
@ -722,7 +738,7 @@ Command \"{cmdname}\" has no defined `func()` method. Available properties on th
else:
center_string = ""
fill_character = self.account.options.get("%s_fill" % mode)
fill_character = self._get_account_option("%s_fill" % mode)
remain_fill = width - len(center_string)
if remain_fill % 2 == 0:

View file

@ -1484,7 +1484,7 @@ class CmdName(ObjManipCommand):
obj = None
if self.lhs_objs:
objname = self.lhs_objs[0]["name"]
if objname.startswith("*"):
if objname.startswith("*") and caller.account:
# account mode
obj = caller.account.search(objname.lstrip("*"))
if obj:

View file

@ -189,7 +189,8 @@ class CmdNick(COMMAND_DEFAULT_CLASS):
if "clearall" in switches:
caller.nicks.clear()
caller.account.nicks.clear()
if caller.account:
caller.account.nicks.clear()
caller.msg("Cleared all nicks.")
return
@ -789,15 +790,18 @@ class CmdAccess(COMMAND_DEFAULT_CLASS):
hierarchy_full = settings.PERMISSION_HIERARCHY
string = "\n|wPermission Hierarchy|n (climbing):\n %s" % ", ".join(hierarchy_full)
if self.caller.account.is_superuser:
if caller.account and caller.account.is_superuser:
cperms = "<Superuser>"
pperms = "<Superuser>"
else:
cperms = ", ".join(caller.permissions.all())
pperms = ", ".join(caller.account.permissions.all())
if caller.account:
pperms = ", ".join(caller.account.permissions.all())
else:
pperms = "<No account>"
string += "\n|wYour access|n:"
string += f"\nCharacter |c{caller.key}|n: {cperms}"
if utils.inherits_from(caller, DefaultObject):
if utils.inherits_from(caller, DefaultObject) and caller.account:
string += f"\nAccount |c{caller.account.key}|n: {pperms}"
caller.msg(string)