feat: Enhance user info display with additional fields for accent color, avatar decoration, Nitro status, pronouns, locale, server boosting status, and mutual servers

This commit is contained in:
pancakes-proxy 2025-06-02 13:13:58 -04:00
parent a2c086998a
commit 2570f6c124

View File

@ -106,6 +106,7 @@ class UserInfoCog(commands.Cog):
) )
if badge_str: if badge_str:
embed.add_field(name="Badge", value=badge_str, inline=False) embed.add_field(name="Badge", value=badge_str, inline=False)
# If banner_url exists, set as embed image at the top
if banner_url: if banner_url:
embed.set_image(url=banner_url) embed.set_image(url=banner_url)
embed.set_thumbnail(url=member.display_avatar.url) embed.set_thumbnail(url=member.display_avatar.url)
@ -120,6 +121,35 @@ class UserInfoCog(commands.Cog):
embed.add_field(name="Account Created", value=member.created_at.strftime('%Y-%m-%d %H:%M:%S UTC'), inline=True) embed.add_field(name="Account Created", value=member.created_at.strftime('%Y-%m-%d %H:%M:%S UTC'), inline=True)
if hasattr(member, 'joined_at') and member.joined_at: if hasattr(member, 'joined_at') and member.joined_at:
embed.add_field(name="Joined Server", value=member.joined_at.strftime('%Y-%m-%d %H:%M:%S UTC'), inline=True) embed.add_field(name="Joined Server", value=member.joined_at.strftime('%Y-%m-%d %H:%M:%S UTC'), inline=True)
# --- Additional User Info (TOS-compliant) ---
# Accent color
accent_color = getattr(user_obj, 'accent_color', None)
if accent_color:
embed.add_field(name="Accent Color", value=str(accent_color), inline=True)
# Avatar Decoration (if available)
avatar_decoration = getattr(user_obj, 'avatar_decoration', None)
if avatar_decoration:
embed.add_field(name="Avatar Decoration", value=str(avatar_decoration), inline=True)
# Nitro status (public flag)
if user_flags and getattr(user_flags, 'premium', False):
embed.add_field(name="Nitro", value="Yes", inline=True)
# Pronouns (if available)
pronouns = getattr(user_obj, 'pronouns', None)
if pronouns:
embed.add_field(name="Pronouns", value=pronouns, inline=True)
# Locale/language (if available)
locale = getattr(user_obj, 'locale', None)
if locale:
embed.add_field(name="Locale", value=locale, inline=True)
# Server boosting status
if isinstance(member, discord.Member) and getattr(member, 'premium_since', None):
embed.add_field(name="Server Booster", value=f"Since {member.premium_since.strftime('%Y-%m-%d %H:%M:%S UTC')}", inline=True)
# Mutual servers (if bot shares more than one)
if hasattr(self.bot, 'guilds'):
mutual_guilds = [g.name for g in self.bot.guilds if g.get_member(member.id)]
if len(mutual_guilds) > 1:
embed.add_field(name="Mutual Servers", value=", ".join(mutual_guilds), inline=False)
# End of additional info
embed.set_footer(text=f"Requested by {interaction.user.display_name}", icon_url=interaction.user.display_avatar.url) embed.set_footer(text=f"Requested by {interaction.user.display_name}", icon_url=interaction.user.display_avatar.url)
await interaction.response.send_message(embed=embed) await interaction.response.send_message(embed=embed)