Add batting stats to /player

This commit is contained in:
Cal Corum 2023-09-09 17:47:01 -05:00
parent 48b10bfaec
commit 125a4b5918
2 changed files with 21 additions and 4 deletions

View File

@ -375,6 +375,8 @@ class Players(commands.Cog):
if interaction.channel.name in ['paper-dynasty-chat', 'pd-news-ticker']:
ephemeral = True
await interaction.response.defer(ephemeral=ephemeral)
this_player = fuzzy_search(player_name, self.player_list)
if not this_player:
await interaction.response.send_message(f'No clue who that is.')
@ -385,7 +387,7 @@ class Players(commands.Cog):
if this_cardset:
all_params = [('name', this_player), ('cardset_id', this_cardset['id'])]
else:
await interaction.response.send_message(f'I couldn\'t find {cardset} cardset.')
await interaction.edit_original_response(content=f'I couldn\'t find {cardset} cardset.')
return
else:
all_params = [('name', this_player)]
@ -396,9 +398,9 @@ class Players(commands.Cog):
all_embeds = []
for x in all_cards:
all_embeds.extend(await get_card_embeds(x))
all_embeds.extend(await get_card_embeds(x, include_stats=True))
logging.debug(f'embeds: {all_embeds}')
await interaction.response.send_message(content=None, embeds=all_embeds, ephemeral=ephemeral)
await interaction.edit_original_response(content=None, embeds=all_embeds)
@app_commands.command(name='record', description='Display team record against AI teams')
@app_commands.checks.has_any_role(PD_PLAYERS_ROLE_NAME)

View File

@ -1518,7 +1518,7 @@ async def share_channel(channel, user, read_only=False):
await channel.set_permissions(user, read_messages=True, send_messages=not read_only)
async def get_card_embeds(card) -> list:
async def get_card_embeds(card, include_stats=False) -> list:
embed = discord.Embed(
title=f'{card["player"]["p_name"]}',
color=int(card['player']['rarity']['color'], 16)
@ -1528,6 +1528,9 @@ async def get_card_embeds(card) -> list:
embed.set_author(name=card['team']['lname'], url=IMAGES['logo'], icon_url=card['team']['logo'])
embed.set_footer(text=f'Paper Dynasty Season {card["team"]["season"]}', icon_url=IMAGES['logo'])
if include_stats:
b_query = await db_get('plays/batting', params=[('player_id', card['player']['player_id'])])
# embed.add_field(
# name='Cardset',
# value=f'{card["player"]["cardset"]["name"]} '
@ -1575,6 +1578,18 @@ async def get_card_embeds(card) -> list:
else:
embed.set_thumbnail(url=IMAGES['logo'])
if include_stats and b_query['count'] > 0:
b = b_query['stats'][0]
batting_string = f'```\n' \
f' AVG OBP SLG\n' \
f' {b["avg"]:.3f} {b["obp"]:.3f} {b["slg"]:.3f}\n``````\n' \
f' OPS wOBA\n' \
f' {b["ops"]:.3f} {b["woba"]:.3f}\n``````\n' \
f' PA H RBI 2B 3B HR SB\n' \
f'{b["pa"]: >3} {b["hit"]: ^3} {b["rbi"]: ^3} {b["double"]: >2} {b["triple"]: >2} ' \
f'{b["hr"]: >2} {b["sb"]: >2}```\n'
embed.add_field(name='Batting Stats', value=batting_string, inline=False)
if not card['player']['image2']:
return [embed]