# lockfuncs.py
def decrypt(accessor, target, *args, **kwargs):
if args: # we've been provided a password
password = args[0]
if hasattr(accessor, "db"):
# first we check if the accessing object has the password for the target
if type(accessor.db.__channel_passwords) is dict:
password_matches = accessor.db.__channel_passwords.get(target) == password
else:
accessor.db.__channel_passwords = {}
password_matches = False
# next we'll see if they pass a skill check
# assuming Ainneve-style skills - please replace with whatever works
if not hasattr(accessor, "skills"): # just in case we don't have a skills attribute
return password_matches
return password_matches or accessor.skills.decryption > 5
else: # we don't have a typeclassed object
return False
else: # we don't have a password on this message
return True
Comments