async def profile2(self, ctx, target: User = Author): _("""View someone's profile, not image based.""") rank_money, rank_xp = await self.bot.get_ranks_for(target) sword, shield = await self.bot.get_equipped_items_for(target) async with self.bot.pool.acquire() as conn: p_data = await conn.fetchrow( 'SELECT * FROM profile WHERE "user"=$1;', target.id) if not p_data: return await ctx.send( _("**{target}** does not have a character.").format( target=target)) mission = await self.bot.get_adventure(target) guild = await conn.fetchval( 'SELECT name FROM guild WHERE "id"=$1;', p_data["guild"]) try: colour = discord.Colour.from_rgb( *rpgtools.hex_to_rgb(p_data["colour"])) except ValueError: colour = 0x000000 if mission: timeleft = str( mission[1]).split(".")[0] if not mission[2] else "Finished" sword = f"{sword['name']} - {sword['damage']}" if sword else "No sword" shield = f"{shield['name']} - {shield['armor']}" if shield else "No shield" level = rpgtools.xptolevel(p_data["xp"]) em = discord.Embed(colour=colour, title=f"{target}: {p_data['name']}") em.set_thumbnail(url=target.avatar_url) em.add_field( name=_("General"), value=_("""\ **Money**: `${money}` **Level**: `{level}` **Class**: `{class_}` **Race**: `{race}` **PvP Wins**: `{pvp}` **Guild**: `{guild}`""").format( money=p_data["money"], level=level, class_="/".join(p_data["class"]), race=p_data["race"], pvp=p_data["pvpwins"], guild=guild, ), ) em.add_field( name=_("Ranks"), value=_("**Richest**: `{rank_money}`\n**XP**: `{rank_xp}`").format( rank_money=rank_money, rank_xp=rank_xp), ) em.add_field( name=_("Equipment"), value=_("Sword: {sword}\nShield: {shield}").format(sword=sword, shield=shield), ) if mission: em.add_field(name=_("Mission"), value=f"{mission[0]} - {timeleft}") await ctx.send(embed=em)
async def profile2(self, ctx, *, target: User = Author): _("""View someone's profile, not image based.""") rank_money, rank_xp = await self.bot.get_ranks_for(target) items = await self.bot.get_equipped_items_for(target) async with self.bot.pool.acquire() as conn: p_data = await conn.fetchrow( 'SELECT * FROM profile WHERE "user"=$1;', target.id ) if not p_data: return await ctx.send( _("**{target}** does not have a character.").format(target=target) ) mission = await self.bot.get_adventure(target) guild = await conn.fetchval( 'SELECT name FROM guild WHERE "id"=$1;', p_data["guild"] ) try: colour = discord.Colour.from_rgb(*rpgtools.hex_to_rgb(p_data["colour"])) except ValueError: colour = 0x000000 if mission: timeleft = str(mission[1]).split(".")[0] if not mission[2] else "Finished" right_hand = None left_hand = None any_count = sum(1 for i in items if i["hand"] == "any") if len(items) == 2 and any_count == 1 and items[0]["hand"] == "any": items = [items[1], items[0]] for i in items: if i["hand"] == "both": right_hand, left_hand = i, i elif i["hand"] == "left": left_hand = i elif i["hand"] == "right": right_hand = i elif i["hand"] == "any": if right_hand is None: right_hand = i else: left_hand = i right_hand = ( f"{right_hand['name']} - {right_hand['damage'] + right_hand['armor']}" if right_hand else _("None Equipped") ) left_hand = ( f"{left_hand['name']} - {left_hand['damage'] + left_hand['armor']}" if left_hand else _("None Equipped") ) level = rpgtools.xptolevel(p_data["xp"]) em = discord.Embed(colour=colour, title=f"{target}: {p_data['name']}") em.set_thumbnail(url=target.avatar_url) em.add_field( name=_("General"), value=_( """\ **Money**: `${money}` **Level**: `{level}` **Class**: `{class_}` **Race**: `{race}` **PvP Wins**: `{pvp}` **Guild**: `{guild}`""" ).format( money=p_data["money"], level=level, class_="/".join(p_data["class"]), race=p_data["race"], pvp=p_data["pvpwins"], guild=guild, ), ) em.add_field( name=_("Ranks"), value=_("**Richest**: `{rank_money}`\n**XP**: `{rank_xp}`").format( rank_money=rank_money, rank_xp=rank_xp ), ) em.add_field( name=_("Equipment"), value=_("Right Hand: {right_hand}\nLeft Hand: {left_hand}").format( right_hand=right_hand, left_hand=left_hand ), ) if mission: em.add_field(name=_("Mission"), value=f"{mission[0]} - {timeleft}") await ctx.send(embed=em)