import discord from discord.ext import commands from discord.ext.commands import Context import random class Info(commands.Cog): def __init__(self, bot): self.bot = bot self.last_member = None @commands.command() async def avatar(self, ctx, member: discord.Member = None): """ Gets user avatar """ if member is None: member = ctx.author if member.avatar: embed = discord.Embed( title=f'Avatar {member}', color=random.randint(0, 0xFFFFFF), ).set_image(url = member.avatar.url) else: embed = discord.Embed( title=f"{member} has no avatar", color=random.randint(0, 0xFFFFFF), ) await ctx.send(embed=embed) @commands.command() async def serverinfo(self, context: Context) -> None: """ Get some useful (or not) information about the server :param context: The hybrid command context. """ roles = [role.name for role in context.guild.roles] num_roles = len(roles) if num_roles > 50: roles = roles[:50] roles.append(f">>>> Displaying [50/{num_roles}] Roles") roles = ", ".join(roles) embed = discord.Embed( title="**Server Name:**", description=f"{context.guild}", color=random.randint(0, 0xFFFFFF) ) if context.guild.icon is not None: embed.set_thumbnail(url=context.guild.icon.url) embed.add_field(name="Server ID", value=context.guild.id) embed.add_field(name="Member Count", value=context.guild.member_count) embed.add_field( name="Text/Voice Channels", value=f"{len(context.guild.channels)}" ) embed.add_field(name=f"Roles ({len(context.guild.roles)})", value=roles) embed.set_footer(text=f"Created at: {context.guild.created_at}") await context.send(embed=embed) @commands.command() async def userinfo(self, ctx, member: discord.Member = None) -> None: """ Gets some information about user """ if member is None: member = ctx.author roles = [role.name for role in member.roles] roles = ", ".join(roles) embed = discord.Embed( title="**Displayed name:**", description=member.display_name, color=random.randint(0, 0xFFFFFF) ) if member.avatar: embed.set_thumbnail(url=member.avatar.url) embed.add_field(name="Username", value=member) embed.add_field(name="User ID", value=member.id) embed.add_field(name=" ", value=' ') embed.add_field(name="User status", value=member.status) embed.add_field(name="_ _", value=member.activity) embed.add_field(name=" ", value=' ') embed.add_field(name=f"User roles ({len(member.roles)})", value= roles ) embed.add_field(name="User join on server at", value=member.joined_at) embed.set_footer(text=f"Account created at: {member.created_at}") await ctx.send(embed=embed) @commands.command() async def serveravatar(self, context: Context) -> None: """ Get server avatar """ embed = discord.Embed( title='Avatar', color=random.randint(0, 0xFFFFFF), ).set_image(url = context.guild.icon.url).set_author(name= context.guild.name, icon_url = context.guild.icon.url) await context.send(embed=embed) @commands.Cog.listener() async def on_ready(self): print('Info cog has been loaded') async def setup(bot): await bot.add_cog(Info(bot))