Update torchlight_changes_unloze/torchlight3/Torchlight/Commands.py
This commit is contained in:
parent
c5506672d7
commit
2e4ce56cf5
@ -596,6 +596,17 @@ class Access(BaseCommand):
|
|||||||
args = message[1].strip() if len(message) > 1 and message[1] else ""
|
args = message[1].strip() if len(message) > 1 and message[1] else ""
|
||||||
|
|
||||||
if args:
|
if args:
|
||||||
|
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)
|
player_level = self._get_player_level(player)
|
||||||
if player_level >= 6:
|
if player_level >= 6:
|
||||||
admin_cmd = AdminAccess(self.Torchlight)
|
admin_cmd = AdminAccess(self.Torchlight)
|
||||||
@ -603,6 +614,45 @@ class Access(BaseCommand):
|
|||||||
tl.SayPrivate(player, "[ACCESS] Admin level required to modify access")
|
tl.SayPrivate(player, "[ACCESS] Admin level required to modify access")
|
||||||
return 1
|
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)
|
tl.SayChat(format_player_access(tl, player), player)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user