@@ -564,7 +564,7 @@ async def friends(self: Self, ctx: commands.Context) -> None:
564564 embed .color = embed_colors .green ()
565565
566566 embed .add_field (
567- name = self .get_user_text (duck_user ),
567+ name = await self .get_user_text (duck_user , ctx . guild ),
568568 value = f"Friends: `{ duck_user .befriend_count } `" ,
569569 inline = False ,
570570 )
@@ -597,18 +597,20 @@ async def record(self: Self, ctx: commands.Context) -> None:
597597 channel = ctx .channel ,
598598 )
599599 return
600- record_user = (
600+ record_user_entry = (
601601 await self .bot .models .DuckUser .query .where (
602602 self .bot .models .DuckUser .speed_record == record_time
603603 )
604604 .where (self .bot .models .DuckUser .guild_id == str (ctx .guild .id ))
605605 .gino .first ()
606606 )
607-
608607 embed = discord .Embed (title = "Duck Speed Record" )
609608 embed .color = embed_colors .green ()
610609 embed .add_field (name = "Time" , value = f"{ str (record_time )} seconds" )
611- embed .add_field (name = "Record Holder" , value = f"<@{ record_user .author_id } >" )
610+ embed .add_field (
611+ name = "Record Holder" ,
612+ value = await self .get_user_text (record_user_entry , ctx .guild ),
613+ )
612614 embed .set_thumbnail (url = self .DUCK_PIC_URL )
613615
614616 await ctx .send (embed = embed )
@@ -659,7 +661,7 @@ async def killers(self: Self, ctx: commands.Context) -> None:
659661 embed .color = embed_colors .green ()
660662
661663 embed .add_field (
662- name = self .get_user_text (duck_user ),
664+ name = await self .get_user_text (duck_user , ctx . guild ),
663665 value = f"Kills: `{ duck_user .kill_count } `" ,
664666 inline = False ,
665667 )
@@ -671,23 +673,27 @@ async def killers(self: Self, ctx: commands.Context) -> None:
671673
672674 await ui .PaginateView ().send (ctx .channel , ctx .author , embeds )
673675
674- def get_user_text (self : Self , duck_user : bot .models .DuckUser ) -> str :
676+ async def get_user_text (
677+ self : Self , duck_user : bot .models .DuckUser , guild : discord .Guild
678+ ) -> str :
675679 """Gets the name of a user formatted to be displayed across the extension
676680
677681 Args:
678682 duck_user (bot.models.DuckUser): The database entry of the user to format
683+ guild (discord.Guild): The guild to fetch duck records from
679684
680685 Returns:
681686 str: The username in a pretty string format, ready to print
682687 """
683- user = self .bot .get_user (int (duck_user .author_id ))
684- if user :
685- user_text = f"{ user .display_name } "
686- user_text_extra = f"({ user .name } )" if user .name != user .display_name else ""
687- else :
688- user_text = "<Unknown>"
689- user_text_extra = ""
690- return f"{ user_text } { user_text_extra } "
688+ user_object = await self .bot .fetch_user (duck_user .author_id )
689+ display_name = user_object .global_name
690+ try :
691+ member_object = await guild .fetch_member (user_object .id )
692+ display_name = member_object .display_name
693+ except discord .NotFound :
694+ ...
695+
696+ return f"`{ display_name } ` (`{ user_object .name } `)"
691697
692698 @auxiliary .with_typing
693699 @commands .guild_only ()
0 commit comments