From 228fb9379c02904924bc628251d1be00aeea92cd Mon Sep 17 00:00:00 2001 From: Conatum Date: Sun, 14 May 2023 12:28:44 +0300 Subject: [PATCH] rewrite (wards): Add context-agnostic wards. --- src/wards.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/wards.py b/src/wards.py index ccac0639..0c1229e4 100644 --- a/src/wards.py +++ b/src/wards.py @@ -1,10 +1,36 @@ +import discord + from meta.LionContext import LionContext +from meta import conf -async def sys_admin(ctx: LionContext) -> bool: +# Interaction Wards + +async def i_sys_admin(interaction: discord.Interaction) -> bool: """ Checks whether the context author is listed in the configuration file as a bot admin. """ + admins = conf.bot.getintlist('admins') + return interaction.user.id in admins + + +async def i_high_management(interaction: discord.Interaction) -> bool: + if await i_sys_admin(interaction): + return True + if not interaction.guild: + return False + return interaction.user.guild_permissions.administrator + + +async def i_low_management(interaction: discord.Interaction) -> bool: + if await i_high_management(interaction): + return True + if not interaction.guild: + return False + return interaction.user.guild_permissions.manage_guild + + +async def sys_admin(ctx: LionContext) -> bool: admins = ctx.bot.config.bot.getintlist('admins') return ctx.author.id in admins