Source code for src.disc
from discord.ext.commands import Command, Context
from src.logger import logger
from src.configuration import config
__all__ = ["DiscordCommand"]
[docs]
class DiscordCommand(Command):
def __init__(self, func, flag="", **kwargs):
self.__doc__ = func.__doc__
self.flag = flag
logger.debug(f"Creating Discord command {func.__name__}")
super().__init__(func, **kwargs)
def __bool__(self):
return self.enabled
[docs]
async def invoke(self, context: Context):
if not self.enabled:
return
if self.flag:
for guild in context.bot.guilds:
if guild.id == config.discord.server_id:
break
else:
return
mod_role = guild.get_role(config.discord.moderator_role)
if self.flag and (
(context.author().id not in config.baalorbot.owners) and
("m" in self.flag and mod_role not in context.author().roles)
):
return
logger.debug(f"Invoking Discord command {self.name} by {context.author().display_name}")
await super().invoke(context)