async def wi(self, ctx, *, member: Optional[Union[discord.Member, MemberID]]): """Prove anyone that they are sus!""" if member == "@everyone": desc = f"Hmmmmmmm ** {ctx.author.mention} , Hey guys {ctx.author.mention} is the sus !!!**" await ctx.send(ErrorEmbed(description=desc)) return member = member or ctx.author desc = f"** {member.mention} is the imposter**" text = f"{member.display_name} is the imposter" embed = ErrorEmbed(description=desc, timestamp=discord.utils.utcnow()) img = Image.open(among_us_friends) draw = ImageDraw.Draw(img) font = ImageFont.truetype( FileIO(BASE_DIR / os.path.join("lib", "data", "arial.ttf")), 60) draw.text((250, 300), text, font=font, fill="red", align="right") img.save("wi.png") embed.set_image(url="attachment://wi.png") await ctx.send(file=discord.File("wi.png", description=text), embed=embed) await sleep(3) os.remove("wi.png")
async def on_command_error(self, ctx: commands.Context, error): if (ctx.cog is not None and ctx.cog.qualified_name.lower() == 'Music'.lower()): return error_channel = await self.bot.fetch_channel( ChannelAndMessageId.error_logs_channel.value) if isinstance(error, commands.CommandOnCooldown): e1 = ErrorEmbed(title="Command Error!", description=f"`{error}`") e1.set_footer(text=f"{ctx.author.name}") await ctx.channel.send(embed=e1, delete_after=self.delete_after_time) elif isinstance(error, (NoChannelProvided, IncorrectChannelError)): return elif isinstance(error, commands.MissingRequiredArgument): e4 = ErrorEmbed(title="Command Error!", description=f"`{error}`") e4.set_footer(text=f"{ctx.author.name}") await ctx.channel.send(embed=e4, delete_after=self.delete_after_time) elif isinstance(error, commands.CommandNotFound): e2 = ErrorEmbed(title="Command Error!", description=f"`{error}`") e2.set_footer(text=f"{ctx.author.name}") await ctx.channel.send(embed=e2, delete_after=self.delete_after_time) elif isinstance(error, commands.BotMissingPermissions): e = ErrorEmbed(description=error) await ctx.send(embed=e, delete_after=self.delete_after_time) elif isinstance(error, commands.MissingPermissions): e = ErrorEmbed(description=error) await ctx.send(embed=e, delete_after=self.delete_after_time) elif isinstance(error, commands.UserInputError): await ctx.send( embed=Embed( description= f"There was something **wrong** with your **input**!\n Please type\n ```)help {ctx.command.name}```,\n to know how to use the command" ), delete_after=self.delete_after_time, ) elif isinstance(error, commands.NotOwner): return elif isinstance(error, commands.CheckFailure): return elif isinstance(error, commands.CheckAnyFailure): return elif isinstance(error, commands.EmojiNotFound): await ctx.send( embed=ErrorEmbed( description= f"The emoji provided {error.argument} was **not found!**"), delete_after=self.delete_after_time, ) elif isinstance(error, commands.PartialEmojiConversionFailure): return elif isinstance(error, commands.BadInviteArgument): return elif isinstance(error, commands.PartialEmojiConversionFailure): return elif isinstance(error, commands.RoleNotFound): await ctx.send(embed=ErrorEmbed(description=error), delete_after=self.delete_after_time) elif isinstance(error, commands.NSFWChannelRequired): await ctx.send( embed=ErrorEmbed( description= f"{error.channel.mention} is an **NSFW Channel**! **{ctx.command.name}** can be run only in **NSFW Channels**! :triumph:" ), delete_after=self.delete_after_time, ) elif isinstance(error, commands.MissingRole): await ctx.send( embed=ErrorEmbed( description= f"You **need** the following **role**: **{' '.join(error.missing_role)}**" ), delete_after=self.delete_after_time, ) elif isinstance(error, commands.MissingAnyRole): await ctx.send( embed=ErrorEmbed( description= f"You **need** the following **role**: **{' '.join(error.missing_roles)}**" ), delete_after=self.delete_after_time, ) elif isinstance(error, commands.BotMissingRole): await ctx.send( embed=ErrorEmbed( description= f"I **need** the following **role**: **{' '.join(error.missing_role)}**" ), delete_after=self.delete_after_time, ) elif isinstance(error, commands.BotMissingAnyRole): await ctx.send( embed=ErrorEmbed( description= f"I **need** the following **role**: **{' '.join(error.missing_roles)}**" ), delete_after=self.delete_after_time, ) elif isinstance(error, commands.BadBoolArgument): await ctx.send(embed=ErrorEmbed(description=error), delete_after=self.delete_after_time) elif isinstance(error, commands.BadColourArgument): await ctx.send(embed=ErrorEmbed(description=error), delete_after=self.delete_after_time) elif isinstance(error, commands.ChannelNotFound): await ctx.send(embed=ErrorEmbed(description=error), delete_after=self.delete_after_time) elif isinstance(error, commands.MessageNotFound): await ctx.send(embed=ErrorEmbed(description=error), delete_after=self.delete_after_time) elif isinstance(error, commands.MemberNotFound): await ctx.send(embed=ErrorEmbed(description=error), delete_after=self.delete_after_time) elif isinstance(error, commands.GuildNotFound): await ctx.send(embed=ErrorEmbed(description=error), delete_after=self.delete_after_time) elif isinstance(error, commands.UserNotFound): await ctx.send(embed=ErrorEmbed(description=error), delete_after=self.delete_after_time) elif isinstance(error, commands.ChannelNotReadable): await ctx.send( embed=ErrorEmbed( description= f"I need the **read message history** permission in that channel! In order to execute **{ctx.command.name}**" ), delete_after=self.delete_after_time, ) elif isinstance(error, commands.DisabledCommand): return elif isinstance(error, commands.MaxConcurrencyReached): await ctx.send(embed=ErrorEmbed(description=error), delete_after=self.delete_after_time) elif isinstance(error, commands.PrivateMessageOnly): await ctx.send( embed=ErrorEmbed( description=f"**{ctx.command.name}** works only in **DM's**" ), delete_after=self.delete_after_time, ) elif isinstance(error, commands.NoPrivateMessage): await ctx.send( embed=ErrorEmbed( description= f"**{ctx.command.name}** doesn't work in **DM's**"), delete_after=self.delete_after_time, ) elif isinstance(error, commands.CommandOnCooldown): l = self.bot.get_command(ctx.command.name) left = l.get_cooldown_retry_after(ctx) e = ErrorEmbed(title=f"Cooldown left - {round(left)}") await ctx.send(embed=e, delete_after=self.delete_after_time) elif isinstance(error, commands.CommandInvokeError): e7 = ErrorEmbed( title= "Oh no, I guess I have not been given proper access! Or some internal error", description=f"`{error}`"[:2000], ) e7.add_field(name="Command Error Caused By:", value=f"{ctx.command}") e7.add_field(name="By", value=f"{ctx.author.name}") e7.set_footer(text=f"{ctx.author.name}") await ctx.channel.send(embed=e7, delete_after=self.delete_after_time) e = Embed( title=f"In **{ctx.guild.name}**", description=f"User affected {ctx.message.author}", ) if ctx.guild.icon: e.set_thumbnail(url=ctx.guild.icon.url) if ctx.guild.banner: e.set_image(url=ctx.guild.banner.with_format("png").url) e.add_field(name="**Total Members**", value=ctx.guild.member_count) e.add_field( name="**Bots**", value=sum(1 for member in ctx.guild.members if member.bot), ) e.add_field(name="**Server ID**", value=ctx.guild.id, inline=True) await ctx.send( "**Error report was successfully sent**", delete_after=self.delete_after_time, ) try: raise error except Exception: await error_channel.send( embeds=[e7, e], file=discord.File( io.BytesIO(str(traceback.format_exc()).encode()), filename="traceback.txt", ), ) else: haaha = ctx.author.avatar.url e9 = ErrorEmbed(title="Oh no there was some error", description=f"`{error}`"[:2000]) e9.add_field(name="**Command Error Caused By**", value=f"{ctx.command}") e9.add_field( name="**By**", value=f"**ID** : {ctx.author.id}, **Name** : {ctx.author.name}", ) e9.set_thumbnail(url=f"{haaha}") e9.set_footer(text=f"{ctx.author.name}") await ctx.channel.send(embed=e9, delete_after=self.delete_after_time) e = Embed( title=f"In **{ctx.guild.name}**", description=f"User affected {ctx.message.author}", ) if ctx.guild.icon: e.set_thumbnail(url=ctx.guild.icon.url) if ctx.guild.banner: e.set_image(url=ctx.guild.banner.with_format("png").url) e.add_field(name="**Total Members**", value=ctx.guild.member_count) e.add_field( name="**Bots**", value=sum(1 for member in ctx.guild.members if member.bot), ) e.add_field(name="**Server ID**", value=ctx.guild.id, inline=True) await ctx.send( "**Error report was successfully sent**", delete_after=self.delete_after_time, ) try: raise error except Exception: await error_channel.send( embed=e, file=discord.File( io.BytesIO( str(traceback.format_exc()).encode(), filename="traceback.txt", )))