mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 11:18:54 -05:00
[V3] Mod/admin role logic corrections (#1914)
* [V3] Mod/admin role logic corrections * Update mod.py * Update mod.py
This commit is contained in:
parent
eb73e48192
commit
79a3164d9d
@ -135,16 +135,10 @@ async def is_mod_or_superior(bot: Red, obj: Union[discord.Message, discord.Membe
|
|||||||
|
|
||||||
if isinstance(obj, discord.Role):
|
if isinstance(obj, discord.Role):
|
||||||
return obj.id in [admin_role_id, mod_role_id]
|
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
|
return True
|
||||||
elif admin_role and discord.utils.get(user.roles, name=admin_role):
|
elif discord.utils.find(lambda r: r.id in (admin_role_id, mod_role_id), user.roles):
|
||||||
return True
|
|
||||||
elif mod_role and discord.utils.get(user.roles, name=mod_role):
|
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
@ -220,17 +214,14 @@ async def is_admin_or_superior(
|
|||||||
else:
|
else:
|
||||||
raise TypeError("Only messages, members or roles may be passed")
|
raise TypeError("Only messages, members or roles may be passed")
|
||||||
|
|
||||||
server = obj.guild
|
admin_role_id = await bot.db.guild(obj.guild).admin_role()
|
||||||
admin_role_id = await bot.db.guild(server).admin_role()
|
|
||||||
|
|
||||||
if isinstance(obj, discord.Role):
|
if isinstance(obj, discord.Role):
|
||||||
return obj.id == admin_role_id
|
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):
|
if user and await bot.is_owner(user):
|
||||||
return True
|
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
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user