Skip to content

Commit 215899e

Browse files
committed
CHANGES:
- Pretense: show Discord mentions for linked accounts (thanks to @backwardspy for contributing)
1 parent 5949252 commit 215899e

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

plugins/pretense/reports.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
from core import report, Server, Side, get_translation
1+
import discord
2+
3+
from core import report, Server, Side, get_translation, utils
24
from datetime import datetime
35

46
from .const import PRETENSE_RANKS
@@ -89,10 +91,23 @@ async def render(self, data: dict):
8991
xp = ''
9092
ranks = ''
9193
for rank, (player, score) in enumerate(sorted_players[:10], start=1):
92-
names += f'{player}\n'
94+
names += f'{await self._player_name(player)}\n'
9395
xp += f'{score:>5}\n'
9496
ranks += f'{self.get_rank(score)}\n'
9597
if names:
9698
self.embed.add_field(name=_('Name'), value=names)
9799
self.embed.add_field(name=_('XP'), value=xp)
98100
self.embed.add_field(name=_('Rank'), value=ranks)
101+
102+
async def _player_name(self, player: str) -> str:
103+
# if `player` is a UCID, try to mention their discord username
104+
# if we can't mention them but can find their name, use that
105+
# else fallback to the raw player name/UCID
106+
if utils.is_ucid(player):
107+
name = await self.bot.get_member_or_name_by_ucid(player)
108+
if isinstance(name, discord.Member):
109+
return name.mention
110+
elif name is not None:
111+
return name
112+
113+
return player

0 commit comments

Comments
 (0)