import nextcord from nextcord.ext import commands, application_checks from nextcord import TextInputStyle import traceback import random import aiosqlite as sqlite3 import aiohttp from urllib.parse import urlparse import os import sys errormsg = ["How could you do this to me!", "I tried my best...", "Maybe this will be fixed next patch", "There's always next time", "Simply processed too hard", "Perhaps this will be fixed", "You found an easter egg! Wait no it's just an error..."] class misc(commands.Cog): def __init__(self, bot: commands.Bot): self.bot = bot @commands.Cog.listener('on_application_command_error') async def errorhandler(self, interaction: nextcord.Interaction, error: nextcord.DiscordException): error = traceback.format_exception(type(error), error, error.__traceback__) random.shuffle(errormsg) strerror = "".join(error) print(strerror, file=sys.stderr) message = f"{errormsg[0]}\n```py\n{strerror[-1800:]}\n```\n Contact <@{self.bot.owner_id}> if the error persists" try: await interaction.response.send_message(message, ephemeral=True) except: await interaction.followup.send(message, ephemeral=True) @commands.Cog.event async def on_error(self, event_method, *args, **kwargs): error = traceback.format_exc() random.shuffle(errormsg) print(error, file=sys.stderr) print(args, file=sys.stderr) print(kwargs, file=sys.stderr) message = f"{errormsg[0]}\n```py\n{error[-1800:]}\n```\n Contact <@{self.bot.owner_id}> if the error persists" try: await interaction.response.send_message(message, ephemeral=True) except: try: await interaction.followup.send(message, ephemeral=True) except: await interaction.send(message, ephemeral=True) def setup(bot: commands.Bot): bot.add_cog(misc(bot))