[V3] Mod/admin role logic corrections (#1914)

* [V3] Mod/admin role logic corrections

* Update mod.py

* Update mod.py
This commit is contained in:
Michael H 2018-07-11 21:17:44 -04:00 committed by Kowlin
parent eb73e48192
commit 79a3164d9d

View File

@ -135,16 +135,10 @@ async def is_mod_or_superior(bot: Red, obj: Union[discord.Message, discord.Membe
if isinstance(obj, discord.Role):
return obj.id in [admin_role_id, mod_role_id]
mod_roles = [r for r in server.roles if r.id == mod_role_id]
mod_role = mod_roles[0] if len(mod_roles) > 0 else None
admin_roles = [r for r in server.roles if r.id == admin_role_id]
admin_role = admin_roles[0] if len(admin_roles) > 0 else None
if user and user == await bot.is_owner(user):
if await bot.is_owner(user):
return True
elif admin_role and discord.utils.get(user.roles, name=admin_role):
return True
elif mod_role and discord.utils.get(user.roles, name=mod_role):
elif discord.utils.find(lambda r: r.id in (admin_role_id, mod_role_id), user.roles):
return True
else:
return False
@ -220,17 +214,14 @@ async def is_admin_or_superior(
else:
raise TypeError("Only messages, members or roles may be passed")
server = obj.guild
admin_role_id = await bot.db.guild(server).admin_role()
admin_role_id = await bot.db.guild(obj.guild).admin_role()
if isinstance(obj, discord.Role):
return obj.id == admin_role_id
admin_roles = [r for r in server.roles if r.id == admin_role_id]
admin_role = admin_roles[0] if len(admin_roles) > 0 else None
if user and await bot.is_owner(user):
return True
elif admin_roles and discord.utils.get(user.roles, name=admin_role):
elif discord.utils.get(user.roles, id=admin_role_id):
return True
else:
return False