Update torchlight_changes_unloze/torchlight3/Torchlight/Commands.py

This commit is contained in:
Metroid_Skittles 2026-02-06 18:37:19 +01:00
parent c5506672d7
commit 2e4ce56cf5

View File

@ -596,12 +596,62 @@ class Access(BaseCommand):
args = message[1].strip() if len(message) > 1 and message[1] else ""
if args:
player_level = self._get_player_level(player)
if player_level >= 6:
admin_cmd = AdminAccess(self.Torchlight)
return await admin_cmd._modify_access(args, player, tl)
tl.SayPrivate(player, "[ACCESS] Admin level required to modify access")
return 1
is_set = False
if " as " in args:
is_set = True
else:
parts = args.rsplit(" ", 1)
if len(parts) == 2:
last = parts[1].strip()
if last == "revoke" or last.lstrip('-').isdigit():
is_set = True
if is_set:
player_level = self._get_player_level(player)
if player_level >= 6:
admin_cmd = AdminAccess(self.Torchlight)
return await admin_cmd._modify_access(args, player, tl)
tl.SayPrivate(player, "[ACCESS] Admin level required to modify access")
return 1
# Lookup access for a named player
search_term = args.lower()
count = 0
max_results = 3
if args.startswith('#') and args[1:].isdigit():
p = tl.Players.FindUserID(int(args[1:]))
if p:
tl.SayChat(format_player_access(tl, p))
return 0
for p in tl.Players:
if search_term in p.Name.lower():
tl.SayChat(format_player_access(tl, p))
count += 1
if count >= max_results:
return 0
try:
for unique_id, access_info in tl.Access:
try:
if search_term in access_info["name"].lower():
tl.SayChat(
f'#{unique_id} "{access_info["name"]}"({unique_id}) '
f'is level {access_info["level"]} and currently offline.'
)
count += 1
if count >= max_results:
return 0
except (KeyError, TypeError):
continue
except Exception as e:
self.Logger.error(f"Error iterating Access list in !access: {e}")
tl.SayPrivate(player, f"[ACCESS] Error: {str(e)}")
if count == 0:
tl.SayPrivate(player, f"[ACCESS] No matches for: {args}")
return 0
tl.SayChat(format_player_access(tl, player), player)
return 0