From 2570f6c1241e7044ffdf5d8837c9531d02b4e0a2 Mon Sep 17 00:00:00 2001 From: pancakes-proxy Date: Mon, 2 Jun 2025 13:13:58 -0400 Subject: [PATCH] feat: Enhance user info display with additional fields for accent color, avatar decoration, Nitro status, pronouns, locale, server boosting status, and mutual servers --- cogs/userinfo.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/cogs/userinfo.py b/cogs/userinfo.py index 2c0f1d7..cdd7758 100644 --- a/cogs/userinfo.py +++ b/cogs/userinfo.py @@ -106,6 +106,7 @@ class UserInfoCog(commands.Cog): ) if badge_str: embed.add_field(name="Badge", value=badge_str, inline=False) + # If banner_url exists, set as embed image at the top if banner_url: embed.set_image(url=banner_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) 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) + # --- 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) await interaction.response.send_message(embed=embed)