Exemple #1
0
    async def on_command_error(self, ctx: Context,
                               error: Exception) -> NoReturn:
        """If an unexpected error occurs, it displays an... error message?

        Attributes:
        -----------
        - `error` - error information

        """
        s = await Settings(ctx.guild.id)
        lang = await s.get_field("locale", CONFIG["default_locale"])
        STRINGS = Strings(lang)
        COMMANDS = Commands(lang)

        if isinstance(error, commands.CommandNotFound):
            return
        await ctx.message.add_reaction(CONFIG["no_emoji"])

        if isinstance(error, commands.MissingRequiredArgument):
            prefix = await s.get_field("prefix", CONFIG["default_prefix"])

            if ctx.command.cog.name != "Jishaku":
                embed = Utils.error_embed(STRINGS["etc"]["usage"].format(
                    COMMANDS[ctx.command.cog.name]["commands"][
                        ctx.command.name]["usage"].format(prefix)))
        elif isinstance(error, commands.MissingPermissions):
            embed = Utils.error_embed(STRINGS["error"]["missing_perms"])

        elif isinstance(error, commands.BotMissingPermissions):
            embed = Utils.error_embed(
                STRINGS["error"]["missing_bot_perms"].format(" ".join(
                    "+ " + STRINGS["etc"]["permissions"][f"{perm}"]
                    for perm in error.missing_perms)))

        elif isinstance(error, commands.CommandOnCooldown):
            embed = Utils.error_embed(STRINGS["error"]["cooldown"].format(
                error.retry_after))

        elif isinstance(error, commands.errors.NSFWChannelRequired):
            embed = discord.Embed(
                title=STRINGS["error"]["nsfwerrortitle"],
                description=STRINGS["error"]["nsfwnotcorrectspot"],
                color=0xFF0000,
            )
            embed.add_field(
                name=STRINGS["error"]["nsfwlogerror"],
                value=STRINGS["error"]["nsfwtraceback"].format(str(error)),
                inline=False,
            )

        else:
            embed = discord.Embed(color=0xDD0000)
            embed.title = STRINGS["error"]["on_error_title"]
            embed.description = STRINGS["error"]["on_error_text"].format(
                str(error))
            Logger.warn(str(error))

        msg = await ctx.send(embed=embed)
        await asyncio.sleep(20)
        await msg.delete()
Exemple #2
0
async def on_ready() -> NoReturn:
    for filename in os.listdir(filepath + "/cogs/"):
        if filename.endswith(".py"):
            bot.load_extension("cogs.{0}".format(filename[:-3]))

    await bot.change_presence(activity=discord.Game(name="..."))
    bot.load_extension("jishaku")
    Logger.done(STRINGS["bot_log"]["logged_as"].format(bot.user))
Exemple #3
0
def setup(bot: Bot) -> NoReturn:
    bot.add_cog(General(bot))
    Logger.cog_loaded(bot.get_cog("General").name)
Exemple #4
0
def setup(bot: Bot) -> NoReturn:
    bot.add_cog(Admin(bot))
    Logger.cog_loaded(bot.get_cog("Admin").name)
Exemple #5
0
def setup(bot: Bot) -> NoReturn:
    bot.add_cog(Workers(bot))
    Logger.cog_loaded(bot.get_cog("Workers").name)
Exemple #6
0
def setup(bot: Bot) -> NoReturn:
    bot.add_cog(Utilities(bot))
    Logger.cog_loaded(bot.get_cog("Utilities").name)
Exemple #7
0
def setup(bot: Bot) -> NoReturn:
    bot.add_cog(Other(bot))
    Logger.cog_loaded(bot.get_cog("Other").name)
Exemple #8
0
def setup(bot):
    bot.add_cog(Music(bot))
    Logger.cog_loaded(bot.get_cog("Music").name)
Exemple #9
0
 async def on_command(self, ctx: Context) -> NoReturn:
     """Logging commands to the console."""
     Logger.command_used(ctx.message.author, ctx.command.name,
                         ctx.message.guild)
Exemple #10
0
def setup(bot: Bot) -> NoReturn:
    bot.add_cog(Listeners(bot))

    now = datetime.datetime.now()
    time = now.strftime("%H:%M:%S")
    Logger.cog_loaded(bot.get_cog("Listeners").name)
Exemple #11
0
def setup(bot: Bot) -> NoReturn:
    bot.add_cog(Prefs(bot))
    Logger.cog_loaded(bot.get_cog("Prefs").name)
Exemple #12
0
def setup(bot: Bot) -> NoReturn:
    bot.add_cog(Moderation(bot))
    Logger.cog_loaded(bot.get_cog("Moderation").name)
Exemple #13
0
def setup(bot):
    bot.add_cog(Workers(bot))
    Logger.cog_loaded(bot.get_cog("Workers").name)