111 lines
3.6 KiB
Python
111 lines
3.6 KiB
Python
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)) |