async def get_permissions_from_member( cls, engine: AsyncEngine, bot: Bot, guild: t.Union[str, int, Guild], member: t.Union[str, int, Member]) -> dict: if isinstance(guild, str): guild = int(guild) if isinstance(member, str): member = int(member) if isinstance(member, int): user = bot.get_user(member) if not user: raise ValueError(f"Unable to find valid user by: {member}") if isinstance(guild, int): true_guild = bot.get_guild(guild) if not true_guild: raise ValueError( f"Unable to find a guild with id: {guild}") member = guild.get_member(user) if isinstance(member, Member): # Administrators doesn't have limited permissions, makes sure # to handle for that if member.guild_permissions.administrator: dct = { col: float("inf") for col in cls.__table__.columns.keys() } dct.update({'guild': guild}) return dct # Follow the hierarchy from most important role to everyone # and use the first found time in each time type, # if none found, return empty permissions dct = { col: None for col in cls.__table__.columns.keys() if col.endswith("_time") } for role in member.roles[::-1]: perms = await cls.get_permissions(engine, guild, role) for key, value in dct: if value is not None: dct[key] = perms[key] dct.update({'guild': guild}) return dct
def setup(bot: Bot) -> None: """Load the Translation cog.""" bot.add_cog(Translator(bot))
def setup(bot: Bot) -> None: bot.add_cog(MessageLog(bot))
def setup(bot: Bot) -> None: bot.add_cog(Emotes(bot))
def setup(bot: Bot) -> None: bot.add_cog(Support(bot))
def setup(bot: Bot) -> None: """Load the Moderation cog.""" bot.add_cog(Moderation(bot))
def setup(bot: Bot) -> None: bot.add_cog(Events(bot))
def __init__(self, bot: Bot): self.bot = bot self.old_help_command = bot.help_command bot.help_command = HelpCommand()
import os from discord import Game, Intents from bot import config from bot.core.bot import Bot TOKEN = os.getenv("BOT_TOKEN") PREFIX = config.COMMAND_PREFIX intents = Intents.default() intents.guilds = True intents.bans = True intents.messages = True intents.members = True # Requires discord app permission bot = Bot(command_prefix=PREFIX, activity=Game(name=f"Ping me using {PREFIX}help"), case_insensitive=True, intents=intents) if __name__ == "__main__": bot.run(TOKEN)
def setup(bot: Bot) -> None: """Load the Sudo cog.""" bot.add_cog(Sudo(bot))
def setup(bot: Bot) -> None: """Load the Func cog.""" bot.add_cog(Fun(bot))
def setup(bot: Bot) -> None: """Load the Search cog.""" bot.add_cog(Search(bot))
def setup(bot: Bot) -> None: bot.add_cog(Strikes(bot))
def setup(bot: Bot) -> None: bot.add_cog(Moderation(bot))
def setup(bot: Bot) -> None: bot.add_cog(Commands(bot))
def setup(bot: Bot) -> None: """Load the Common cog.""" bot.add_cog(Common(bot))
def setup(bot: Bot) -> None: bot.add_cog(Search(bot))
def setup(bot: Bot) -> None: bot.add_cog(ErrorHandler(bot))
def setup(bot: Bot) -> None: bot.add_cog(Help(bot))
def setup(bot: Bot) -> None: bot.add_cog(MalwareProtection(bot))
def setup(bot: Bot) -> None: """Load the Security cog.""" bot.add_cog(Security(bot))
def setup(bot: Bot) -> None: """Load the games cogs.""" bot.add_cog(Hangman(bot)) bot.add_cog(Games(bot))
def setup(bot: Bot) -> Bot: bot.add_cog(Embeds(bot))
def setup(bot: Bot) -> None: bot.add_cog(Documentation(bot))
def setup(bot: Bot) -> None: bot.add_cog(JoinLog(bot))
def setup(bot: Bot) -> None: bot.add_cog(Lock(bot))
def setup(bot: Bot) -> None: """Load the Games cogs.""" bot.add_cog(Games(bot)) bot.add_cog(Fun(bot)) bot.add_cog(Comics(bot)) bot.add_cog(Trivia(bot))
def setup(bot: Bot) -> None: bot.add_cog(Translator(bot))
def setup(bot: Bot) -> None: bot.add_cog(Fun(bot))
def setup(bot: Bot) -> None: bot.add_cog(RolesSetup(bot))